【发布时间】:2012-08-27 19:27:20
【问题描述】:
我需要提高我们网站的安全性,目前正在使用这里的指南:http://crackstation.net/hashing-security.htm,以及这里的随机密码生成:https://defuse.ca/generating-random-passwords.htm。我收集到两者都使用函数mcrypt_create_iv() 来生成随机字节(或位?),但由于某种原因,我在 CentOS 6 下安装 php-mcrypt 时遇到错误。幸运的是,第一个链接说 openssl_random_pseudo_bytes() 是 CSPRNG (以及 PHP 文档和其他来源也支持该声明),并且在 PHP 5.4 的当前服务器安装中可用,所以我目前别无选择,只能使用它。考虑到这些,我想问以下问题:
直接代码替换是否足够而不影响安全性? (也就是说,只需将对
mcrypt_create_iv()的调用替换为openssl_random_pseudo_bytes()就可以了?)关于代码中提到的常量 (http://crackstation.net/hashing-security.htm#properhashing),指南说“[m]确保你的盐至少和哈希函数的输出。”我是否正确假设
PBKDF2_SALT_BYTES和PBKDF2_HASH_BYTES都设置为 24 字节,因为pbkdf2()函数的输出将只有 24 字节,而不是 32(对于 256 位),因为使用的底层算法是sha256? (是的,我也在使用键拉伸。)在相关说明中,24 字节是否可以,或者应该增加/减少,会有什么影响?
非常感谢那些愿意回答的人。
【问题讨论】: