我有一个使用旧哈希方法的MySQL数据库。现在我想在 AES 中使用这种新的哈希方法
SELECT HEX(AES_ENCRYPT('%s', 'key'));
那么,有人可以帮助我查询以转换使用此哈希值的所有密码
吗SELECT PASSWORD('TEST');
介绍新的?
我认为不可能直接从加密密码到新密码..所以也许首先解密(从旧)查询,然后加密(到新AES)查询。
问候
加密和哈希是非常不同的操作。加密是可逆的。哈希是单向的。
此外,存储密码的正确方法不涉及像SHA1(MySQL用于其PASSWORD()
函数)这样的快速哈希函数,更不用说AES,它涉及像bcrypt这样的慢速哈希函数。
使用password_hash()
和password_verify()
。不要在 SQL 查询中执行此操作。阅读本节,了解如何将旧哈希迁移到正确的密码存储算法。