如何加密mysql数据库中的数据?

时间:2014-07-08 05:41:54

标签: mysql database encryption

我有一个PHP文件,允许用户将文本插入MySql数据库。我想要加密数据。 (任何加密对我来说都可以...... MD5,SHA1,SHA512,其中任何一个)当用户从数据库请求数据时,它显示为常规纯文本(由他输入的值)。请帮帮我怎么办?

3 个答案:

答案 0 :(得分:1)

MD5,SHA1和SHA512是哈希函数,没有可逆加密。

我建议使用加密/解密对AES_ENCRYPTAES_DECRYPT

答案 1 :(得分:1)

MD5,SHA1,SHA512是散列和压缩工具,因此这些算法解密 隐藏的文本是不可能的(查看difference between hashing and encryption) 。

这两个PHP函数可以满足您对这种特定情况的需求:您将此函数用于encrypt,将此函数用于decrypt

答案 2 :(得分:0)

在用户注册时,将他/她选择的登录名和密码与盐值连接起来,用PHP $ PwdHash = md5($ salt。$ loginname。$ password); 来串联串联将$ PwdHash存储在数据库中。

当用户想要稍后进行身份验证时,他/她会再次发送$ loginname和$ password。 使用获得的凭据 $ PwdHash = md5($ salt。$ loginname。$ password); 重复相同的操作,并将计算出的$ PwdHash与存储在与$ loginname对应的数据库行中的PwdHash进行比较。

Salt是您选择的任意常数秘密值,例如 $ salt =“user3668837”; 。如果他设法窃取数据库内容,使用salt可以防止攻击者使用 rainbow tables 从数据库中挖出密码。