我有一个PHP文件,允许用户将文本插入MySql数据库。我想要加密数据。 (任何加密对我来说都可以...... MD5,SHA1,SHA512,其中任何一个)当用户从数据库请求数据时,它显示为常规纯文本(由他输入的值)。请帮帮我怎么办?
答案 0 :(得分:1)
MD5,SHA1和SHA512是哈希函数,没有可逆加密。
我建议使用加密/解密对AES_ENCRYPT和AES_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 从数据库中挖出密码。