生成安全的PHP随机数和密码(php5.3+)
随机数
一般我们都是使用rand,mt_rand由这些函数来组是不太安全的。
- linux附带两个接口的随机数,/dev/random(专家说有阻塞性web哪就不适合用) /dev/urandom合适生成安全的php随机数。使用fopen fread来读取内容。
1.详见 - mcrypt_create_iv() 和 openssl_random_pseudo_bytes()来生成随机数,再用bin2hex把ASCII码转成16进制
密码
1.到现我们可能还在使用md5算法加密方式,在官方文档http://php.net/manual/zh/function.md5.php都明确注释(NOTE)依赖md5算法来对明文加密不够复杂且也不推荐,哪今天介绍几种加密算法
官方说的”盐”,password_hash()或者crypt()来保存”盐”,password_verify()或者crypt()对密码进行验证。官方说明图如下:
|
|
|
|
对称加密方式(symmetric encryption) phpversion5.5+
|
|