MySQL双向加密与解密使用详解
双向加密
让我们用最简单的加密开始:双向加密。在这里,一块数据与一个密钥进行加密,并只能由人谁知道key.mysql有两个功能来支持这种类型的加密解密,称为编码和解码()()。以下是一个简单的例子:
复制代码代码如下所示:
插入用户(用户名,密码)
值(乔,编码('guessme、嘛呢叭咪));
查询OK,1行受影响(0.14秒)
在这,乔密码是guessme,这是经过加密的关键咒语。需要注意的是,加密的结果是一个二进制字符串,如下所示:
复制代码代码如下所示:
MySQL >从users用户名= '乔';
---------- ---------- + + +
| | |用户名密码
---------- ---------- + + +
|乔|我|!
---------- ---------- + + +
1行集(0.02秒)
咒语的关键是恢复到原始字符串的关键。这个密钥必须通过解码()函数来得到原始的、未加密的密码。下面是它的使用方式:
MySQL >选择解码(密码,嘛呢叭咪)
从用户的用户名= '乔';
--------------------------------- + +
|解码(密码,嘛呢叭咪)|
--------------------------------- + +
| guessme |
--------------------------------- + +
1行集(0秒)
应该很容易看出它是如何在Web应用程序中运行的。当验证用户登录时,解码()将打开网站专用密钥保存在数据库中的密码,并将其与用户输入的内容进行比较。如果您使用PHP作为自己的脚本语言,则可以查询如下:
复制代码代码如下所示:
< PHP
从用户那里选择计数(*)
用户名= $ inputuser'and解码(密码,
咒语)=inputpass美元;
>
注:虽然两功能的编码和解码()()可以满足大部分的要求,有时你想使用高强度的加密,在这种情况下,你可以使用aes_encrypt()和()函数,这aes_decrypt工作方式相同,但加密高。