上QQ阅读APP看书,第一时间看更新
6.7 加密函数
加密函数主要用来对数据进行加密和界面处理,以保证某些重要数据不被别人获取。这些函数在保证数据库安全时非常有用。本章将介绍各种加密和解密函数的作用和使用方法。
6.7.1 加密函数MD5(str)
MD5(str)为字符串算出一个MD5 128比特检查和。该值以32位十六进制数字的二进制字符串的形式返回,若参数为NULL则会返回NULL。
【例6.62】使用MD5函数加密字符串,输入语句如下:
SELECT MD5 ('mypwd');
语句执行后,结果如图6-62所示。
可以看到,“mypwd”经MD5加密后的结果为318bcb4be908d0da6448a0db76908d78
图6-62 SQL语句执行结果
6.7.2 加密函数ENCODE(str,pswd_str)
ENCODE(str,pswd_str)使用pswd_str作为加密编码,加密str,常见的加密编码包括base64、hex和escape。
【例6.63】使用ENCODE加密字符串,输入语句如下:
SELECT ENCODE('secret','hex'), LENGTH(ENCODE('secret','hex'));
语句执行后,结果如图6-63所示。可以看到,加密后的长度为12。
图6-63 SQL语句执行结果
6.7.3 解密函数DECODE(crypt_str,pswd_str)
DECODE(crypt_str,pswd_str)将pswd_str作为密码,解密加密字符串crypt_str。crypt_str是由ENCODE()返回的字符串。
【例6.64】使用DECODE函数解密被ENCODE加密的字符串,输入语句如下:
SELECT DECODE(ENCODE('secret','hex'),'hex');
语句执行后,结果如图6-64所示。
图6-64 SQL语句执行结果
可以看到,使用相同解密字符串进行解密之后的结果正好为ENCODE函数中被加密的字符串。DECODE函数和ENCODE函数互为反函数。