此问题已在此处有答案:
How to decrypt hash stored by bcrypt(6个回答)
Difference between Hashing a Password and Encrypting it(9个回答)
bcrypt and randomly generated salts(1个答案)
上个月关门了。
varchar(191)可以解密吗?
当我从PhpMyAdmin访问MySql并希望从那里更改用户密码时,它会在密码旁边显示varchar(191),并且它是以某些类型的加密方式编写的,如$2y$10$cp1BPpWTBq8kMWvyOxXjduOPhT68YHEYfj37zDLOLLY10oimc5dQG
请问谁能给予我一个varchar(191)的例子?
1条答案
按热度按时间7qhs6swi1#
在MySQL中,当你看到一个存储为varchar(191)的密码时,它看起来像这样:“$2y$10$cp1BPpWTBq8kMWvyOxXjduOPhT68YHEYfj37zDLOLLY10oimc5dQG”,很可能密码已经被散列,并可能使用bcrypt算法进行了加盐。这是在数据库中安全存储密码的常见做法。
您不能直接解密bcrypt哈希来检索原始密码。相反,您通常会将用户的输入(例如,当他们登录时)与存储的bcrypt散列进行比较,方法是使用相同的算法对他们的输入进行散列,并将结果散列与存储在数据库中的散列进行比较。如果它们匹配,则所提供的密码是正确的。
下面是一个如何使用PHP和password_verify()函数验证密码的示例:
此代码将验证用户提供的密码是否与存储的bcrypt哈希匹配。如果它们匹配,则意味着用户提供了正确的密码。
重要的是要注意,bcrypt哈希是单向函数,这意味着它们不能被逆转以显示原始密码。这是一项安全功能,即使数据库遭到破坏,也有助于保护用户密码。