当前位置:嗨网首页>书籍在线阅读

07-加密函数

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.6 加密函数

本节视频教学录像:1分钟

MySQL中加密函数用来对数据进行加密和解密的处理,以保证数据表中某些重要数据不被别人窃取,这些函数能保证数据库的安全,本节将介绍MySQL中加密和解密函数的使用方法。

Figure-0213-185.jpg 提示 PASSWORD(str)函数在MySQL服务器的鉴定系统中使用;不应将其用在个人的应用程序中,PASSWORD(str)加密是单向的(不可逆),其执行密码加密和UNIX中密码加密的方式不同。

【范例7-52】

使用PASSWORD(str)函数返回一个不可逆的加密密码的操作,输入语句如下。

mySQL> select PASSWORD('test'); +-------------------------------------------+ |PASSWORD(‘test’) | +-------------------------------------------+ | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 | +-------------------------------------------+

由执行结果可以看出,PASSWORD(str)函数将字符串‘test’加密为长字符串,MySQL将该函数加密之后的密码保存到用户权限表中。

【范例7-53】

使用MD5(str)函数返回加密字符串的操作,输入语句如下。

mySQL> select MD5('test'); +----------------------------------+ |MD5('test') | +----------------------------------+ | 098f6bcd4621d373cade4e832627b4f6 | +----------------------------------+

该加密函数的加密形式是可逆的,可以使用在应用程序中。由于MD5的加密算法是公开的,所以这种函数的加密级别不高。

【范例7-54】

使用ENCODE(str,pswd_str)函数返回加密字符串的操作,输入语句如下。

mySQL> select ENCODE('test','hello'),LENGTH(ENCODE('test','hello')); +------------------------+--------------------------------+ | ENCODE('test','hello') | LENGTH(ENCODE('test','hello')) | +------------------------+--------------------------------+ |2=wÍ | 4| +------------------------+--------------------------------+

由执行结果可以看出,被加密的字符串‘test’,使用密钥‘hello’经过ENCODE函数进行加密之后得到的结果是乱码,但是这个乱码的长度和被加密的字符长度相同,都是4。

【范例7-55】

使用DECODE(crypt_str,pswd_str)函数解密被ENCODE加密的字符串的操作,输入语句如下。

mySQL> select DECODE(ENCODE('test','hello'),'hello'); +----------------------------------------+ | DECODE(ENCODE('test','hello'),'hello') | +----------------------------------------+ |test | +----------------------------------------+

由执行结果可以看出,使用DECODE函数可以将使用ENCODE加密的字符串解密还原,这两个函数互为反函数。