目前,我正在使用我在网络上找到的代码加密进入数据库的数据,并作为主题的介绍。我的问题来自两篇WikiHow文章(特别是这些文章):一篇关于login加密; session security上的另一个。两篇文章看起来都很好;然而,两者之间存在一个重要区别:前者表示PHP使用的哈希算法($password = hash('sha512', $password . $salt)
)的JavaScript定义本身是必需的。
即使包含了PHP hash()
方法(在两篇文章中都有),第一个编写者指出'sha512'
加密本身必须定义外部使用另一种语言(作者建议使用JavaScript)。
通过阅读PHP文档,我的印象是hash()
能够处理由标识符识别的一系列预定义的散列算法,例如: whirpool
,sha512
等。可以通过hash_algos()
抓取这些PHP标识符(或者您只需阅读文档)。
我认为特定的预定义哈希算法的外部定义是不必要的,我错了吗?
答案 0 :(得分:1)
我认为不需要使用javascript来散列字符串。
就个人而言,我宁愿使用bcrypt而不是sha512,但它很好,它并不是一个弱算法。
$password = hash('sha512', $password . $salt)
这是散列密码的好方法,如果你想全力以赴,你可以查找PBKDF2
http://en.wikipedia.org/wiki/PBKDF2 https://defuse.ca/php-pbkdf2.htm