对变量使用加密(哈希算法)


Using Encryption (Hash Algorithm) On Variables

目前,我正在使用我在网上找到的代码加密进入数据库的数据,并作为主题的介绍。在这里,我的问题源于WikiHow的两篇文章(并且是这些文章特有的):一篇关于登录加密;另一个是会话安全。这两篇文章看起来都不错;然而,两者之间有一个关键的区别:前者指出,所使用的hasing算法的JavaScript定义($password = hash('sha512', $password . $salt)是PHP本身工作所必需的。

即使包含了PHP hash()方法(在两篇文章中都有),第一篇文章的作者也指出,'sha512'加密本身必须使用另一种语言外部定义(作者建议使用JavaScript)。

通过阅读PHP文档,我的印象是hash()能够处理一系列由标识符识别的预定义哈希算法,例如whirpoolsha512等。这些PHP标识符可以通过hash_algos()获取(也可以只阅读文档)。

我认为特定预定义哈希算法的外部定义是不必要的,这是不是错了?

我认为没有必要使用javascript来散列字符串。

就我个人而言,我宁愿使用bcrypt而不是sha512,但这很好,它并不是一个真正的弱算法。

$password = hash('sha512', $password . $salt)

这是一个散列密码的好方法,如果你想全速前进,你可以查找PBKDF2

http://en.wikipedia.org/wiki/PBKDF2https://defuse.ca/php-pbkdf2.htm