我有$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS密码(qwe)的加密值().但是,当我验证我得到错误的结果哈希值.
mysql> select '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS' = encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as is_valid;
+----------+
| is_valid |
+----------+
| 0 |
+----------+
select encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as hash;
+---------------+
| hash |
+---------------+
| $2tBKnsbV2Szg |
+---------------+
Run Code Online (Sandbox Code Playgroud)
md5 工作良好
mysql> select '$1$$.dCRcHz4ApIYzcA0g/qz3/' = encrypt('qwe', '$1$$.dCRcHz4ApIYzcA0g/qz3/') as is_valid;
+----------+
| is_valid |
+----------+
| 1 |
+----------+
Run Code Online (Sandbox Code Playgroud)
如何添加bcrypt对MySQL的支持?
我在SO上看到了 一些 问题和答案,表明MD5不像SHA这样安全.
我的问题是,这在我的情况下值得担心吗?
这是我如何使用它的一个例子:
MD5(message+time+password).在这个例子中,我真的更喜欢使用SHA而不是MD5吗?
在什么情况下,散列函数的选择在实际意义上真的很重要?
编辑:
只是为了澄清一下 - 在我的例子中,移植到SHA算法有什么好处吗?
换句话说,在这个例子中,有人在不知道共享密码的情况下发送消息和正确的哈希是否可行?
更多编辑:
为重复编辑道歉 - 我不清楚我在问什么.
可能重复:
在MySQL中使用什么函数来散列密码?
安全密码存储
加密密码后,将密码存储到数据库的最佳机制是什么?什么是加密方法和Java实现?