我看到哈希和加密算法之间存在很多混淆,我希望听到一些更专业的建议:
何时使用哈希与加密
什么使哈希或加密算法不同(从理论/数学水平),即什么使哈希不可逆(没有彩虹树的帮助)
以下是一些类似的 SO问题,没有像我想要的那样详细说明:
香港专业教育学院一直在阅读关于php 5.3+ password_hash的内容 - 但是有一些问题,请原谅我,如果我是愚蠢的.看起来制作强大的用户密码哈希的一个重要问题是使用随机盐而不是静态盐.如果我正在检查登录的用户,我肯定要以某种方式获得使用的盐的副本(存储在db中)来检查?如果是这种情况,我是否使用安全盐函数(bcrypt salt函数)并将该字符串存储在db中(并在每次新登录时重新创建)或者是什么?
我有这个:
$options = [
'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
Run Code Online (Sandbox Code Playgroud)
].
当我回显$ options ['salt']时,我得到奇怪的字符,我无法存储在数据库中.我习惯于在db中存储随机盐的旧(不安全)方法,并使用(静态)用户登录auth,但动态/随机盐让我失望了.我错过了什么?随机盐每次都会更改,所以如果我现在存储它,并且重新登录哈希的用户会有所不同,所以db密码与发布的密码不匹配.
谢谢〜