目前,我正在使用我在网上找到的代码加密进入数据库的数据,并作为主题的介绍。在这里,我的问题源于WikiHow的两篇文章(并且是这些文章特有的):一篇关于登录加密;另一个是会话安全。这两篇文章看起来都不错;然而,两者之间有一个关键的区别:前者指出,所使用的hasing算法的JavaScript定义($password = hash('sha512', $password . $salt)
是PHP本身工作所必需的。
即使包含了PHP hash()
方法(在两篇文章中都有),第一篇文章的作者也指出,'sha512'
加密本身必须使用另一种语言外部定义(作者建议使用JavaScript)。
通过阅读PHP文档,我的印象是hash()
能够处理一系列由标识符识别的预定义哈希算法,例如whirpool
、sha512
等。这些PHP标识符可以通过hash_algos()
获取(也可以只阅读文档)。
我认为特定预定义哈希算法的外部定义是不必要的,这是不是错了?
我认为没有必要使用javascript来散列字符串。
就我个人而言,我宁愿使用bcrypt而不是sha512,但这很好,它并不是一个真正的弱算法。
$password = hash('sha512', $password . $salt)
这是一个散列密码的好方法,如果你想全速前进,你可以查找PBKDF2
http://en.wikipedia.org/wiki/PBKDF2https://defuse.ca/php-pbkdf2.htm