我从来没有使用mysql和phpmyadmin,现在我有一个解密的问题。我需要一个加密密码,在注册和解密的过程中登录。我只需要我的密钥解密(事后我选择了sha1)。
这项工作:
INSERT INTO user (ability,username,password) VALUES("Y","userx", AES_ENCRYPT('userx','key1234'));
现在我要解密?我用AES_DECRYPT测试,但总是返回十六进制,也用强制转换,但不工作。有人能帮我写查询吗?
没有什么我想做一个具有挑战性的项目,但我想使用这些mysql的方法。我只需要了解如何查询工作,然后我适应我的需要
1条答案
按热度按时间rhfm7lfc1#
要使用AES加密来解密存储在MySQL数据库中的密码,可以使用MySQL提供的AES_DECRYPT函数。下面是一个示例查询:
在本例中,我们从
user
表中选择ability
、username
和解密后的password
列。我们使用AES_DECRYPT
函数和密码列以及用于加密的相同密钥('key1234 ')。我们还使用'CAST'函数将解密后的密码从十六进制格式转换为字符格式。注意事项:值得一提的是,在MySQL中使用'AES_ENCRYPT'和'AES_DECRYPT'函数可能不是处理密码加密的最安全方法。这些函数使用对称加密算法,其中加密和解密使用相同的密钥。在MySQL查询中存储密钥可能会使其面临安全风险。通常建议使用更安全和现代的加密技术。例如bcrypt或Argon2,它们旨在安全地对密码进行散列,并防止暴力破解和彩虹表攻击等常见攻击。此外,谨慎处理敏感的用户数据(例如密码)并遵循数据保护和隐私的最佳实践也很重要。