【发布时间】:2019-05-18 11:02:14
【问题描述】:
我试图更好地了解散列和加密,但是我偶然发现了一些我似乎无法在 Google 中找到的问题,因为 Google 一直在提供我已经阅读过的散列和加密的基本区别。
更多的人在 StackOverflow 中询问,他们不知道加密和散列之间的区别,这些问题进入了 SO 搜索引擎的顶部。这没有回答我的问题,也没有帮助我。所以我想确定一些关于散列密码和加密密码的事情。
现在假设我想保护一个新的注册用户..
- 我需要先过滤它。 (因无关而略过)
-
在获得“安全”形式的密码后,我对其进行哈希处理。
$safePassword; // Already filled with safe password. $hash = password_hash($safePassword,PASSWORD_ARGON2I); 然后将其插入数据库。
现在问题出现了。
我还需要加密散列密码吗?
如果是这样,我如何安全地加密密码? (我将使用 AES)
AES_ENCRYPT(str, key_str);
其中str 是我们要加密的字符串,key_str 是加密密钥。
另一个问题出现了
- 如何确保
key_str的安全,以便我可以将其用于进一步使用(用于身份验证)?
【问题讨论】:
-
使用适当的散列算法进行散列通常足以保护密码,但之后加密散列确实更安全。如果您想了解有关此主题的更多信息,请查看我关于 safely storing passwords 的教程的结尾。
标签: php encryption passwords aes argon2-ffi