如何在mysql中使用query进行解密?

0md85ypi  于 2023-04-10  发布在  Mysql
关注(0)|答案(1)|浏览(154)

我从来没有使用mysql和phpmyadmin,现在我有一个解密的问题。我需要一个加密密码,在注册和解密的过程中登录。我只需要我的密钥解密(事后我选择了sha1)。
这项工作:

INSERT INTO user (ability,username,password) VALUES("Y","userx", AES_ENCRYPT('userx','key1234'));

现在我要解密?我用AES_DECRYPT测试,但总是返回十六进制,也用强制转换,但不工作。有人能帮我写查询吗?
没有什么我想做一个具有挑战性的项目,但我想使用这些mysql的方法。我只需要了解如何查询工作,然后我适应我的需要

rhfm7lfc

rhfm7lfc1#

要使用AES加密来解密存储在MySQL数据库中的密码,可以使用MySQL提供的AES_DECRYPT函数。下面是一个示例查询:

SELECT ability, username, CAST(AES_DECRYPT(password, 'key1234') AS CHAR) AS decrypted_password FROM user WHERE username = 'userx';

在本例中,我们从user表中选择abilityusername和解密后的password列。我们使用AES_DECRYPT函数和密码列以及用于加密的相同密钥('key1234 ')。我们还使用'CAST'函数将解密后的密码从十六进制格式转换为字符格式。
注意事项:值得一提的是,在MySQL中使用'AES_ENCRYPT'和'AES_DECRYPT'函数可能不是处理密码加密的最安全方法。这些函数使用对称加密算法,其中加密和解密使用相同的密钥。在MySQL查询中存储密钥可能会使其面临安全风险。通常建议使用更安全和现代的加密技术。例如bcrypt或Argon2,它们旨在安全地对密码进行散列,并防止暴力破解和彩虹表攻击等常见攻击。此外,谨慎处理敏感的用户数据(例如密码)并遵循数据保护和隐私的最佳实践也很重要。

相关问题