不要制作自己的密码哈希算法.这将很容易破解,当您的数据库受到威胁时,您的用户将不会欣赏他们的密码被盗.
Bcrypt和其他经过良好测试的哈希已经做到了这一点:
>>> bcrypt.generate_password_hash('password', 15)
'$2a$15$bzaLXuer1C8dtSckDp3AI.eOoL/nOTsSdpjEMyDMcJ3ZQELdRcLzq'
>>> bcrypt.generate_password_hash('password', 15)
'$2a$15$Ye.cFInKhzo1KvAJGSi6yORV5uEqeW.Z1oAhdfi.163Psz4YPA3CO'
Run Code Online (Sandbox Code Playgroud)
随机盐和轮数存储在散列本身中,由分隔符分隔,这使得常量密码检查功能从生成的散列字符串中选择盐.
如果由于某些其他原因需要创建安全的随机字符串,请使用openssl_random_pseudo_bytes():
$bytes = openssl_random_pseudo_bytes(64, true);
$hex = bin2hex($bytes);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |