mysql:加密和解密数据

时间:2010-04-01 05:08:13

标签: mysql encryption

mysql是否提供了存储和检索加密数据的机制?我不是指密码,我的意思是真正的字符串。

我想加密一个字符串,存储在mysql中,然后在以后检索解密的字符串。

所以,我知道有AES_Encrypt和decrypt函数。但他们要求一把钥匙。 (这很好)但我想知道你是否调用这些功能并使用你的用户密码作为密钥。或者其他非常简单的东西。

另外,是否有一个简单的AES_Encrypt&包装器。解密Rails中的函数?或者您需要手动构建查询吗?

3 个答案:

答案 0 :(得分:5)

您可以直接加密加密函数:

select aes_encrypt('MyData',Password('MyPassword'))

再回来..

select Aes_decrypt( aes_encrypt('MyData',Password('MyPassword'))
     , Password('MyPassword'))

答案 1 :(得分:3)

如果我了解您,那么您需要的是从您的(或其他)用户密码生成AES密钥的方法吗?

你不应该问'有一种简单的方法从5-20char字符串生成AES密钥'吗?

正如您所指出的,其他工具已经存在于mysql中:http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html

另外,您可能会在this上找到一些关于SO的想法。

答案 2 :(得分:-3)

$pass = $_POST['pass'];
$sql = "INSERT INTO testperson (name,password,contact) VALUES('$name',md5('$pass'),$cont)";

只需在要加密的输入之前写入md5,例如密码。