开发者

mysql: encrypting and decrypting data

Does mysql provide a mechanis开发者_如何学编程m for storing and retrieving encrypted data? I don't mean passwords, I mean real strings.

I'd like to encrypt a string, store in mysql and then retrieve the decrypted string at a later date.

So, I know there is the AES_Encrypt and decrypt functions. But they ask for a key. (which is fine) but I wondering if you call those functions and use your user password as the key. Or something else that is super-simple.

Also, is there a simple wrapper for the AES_Encrypt & decrypt functions in Rails? Or do you need to build the query manually?


You can just concat the encrypt functions:

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

and back again..

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


If I understand you, then all you need is a method to generate an AES key from your (or other) user password?

Shouldn't you be asking 'Is there an easy method to generate an AES-key from 5-20char string'?

As you point out, the other tools are already in place in mysql: http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html

Also you might find some ideas in this post here on SO.


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

Just write md5 before the input you want to encrypt, like password.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜