【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客
《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com)
MySQL9数据库技术_夏天又到了的博客-CSDN博客
加密函数主要用来对数据进行加密和解密处理,以保证某些重要数据不被别人获取。这些函数在保证数据库安全时非常有用,比如,用户密码使用这些函数就可以不需要明文保存了。本文将介绍各种加密函数的作用和使用方法。
4.7.1 加密函数MD5(str)
MD5(str)为字符串计算出一个MD5 128比特校验和。该校验和以32位十六进制数字的二进制字符串形式返回,若参数为NULL,则会返回NULL。
【例4.97】使用MD5()函数加密字符串,SQL语句如下:
mysql> SELECT MD5 ('mypwd');
+----------------------------------+
| MD5 ('mypwd') |
+----------------------------------+
| 318bcb4be908d0da6448a0db76908d78 |
+----------------------------------+
可以看到,“mypwd”经MD5加密后的结果为318bcb4be908d0da6448a0db76908d78。
4.7.2 加密函数SHA(str)
SHA(str)函数用于计算给定字符串str的加密哈希值。当参数为NULL时,SHA(str)函数将返回NULL。与MD5相比,SHA加密算法提供了更强的安全性能,因为它生成的哈希值更长,碰撞的可能性更低。
【例4.98】使用SHA()函数加密字符串,SQL语句如下:
mysql> SELECT SHA('tom123456');
+------------------------------------------+
| SHA('tom123456') |
+------------------------------------------+
| 8218b487f490cb484f45c31403eb1f597a2b531a |
+------------------------------------------+
4.7.3 加密函数SHA2(str, hash_length)
SHA2(str, hash_length)函数用于对给定的字符串str进行加密,其加密算法为SHA-2。这个函数的第二个参数hash_length用于指定加密后哈希值的长度。hash_length支持的值为224、256、384、512和0。其中,0等同于256。
【例4.99】使用SHA2()加密字符串,SQL语句如下:
mysql> SELECT SHA2('tom123456',0) A,sha2('tom123456',256) B\G
*************************** 1. row ***************************
A: 9242a986a9edbd14a60450e9284a372efeff7e9f6209f675fdc4457f55de5e27
B: 9242a986a9edbd14a60450e9284a372efeff7e9f6209f675fdc4457f55de5e27
可以看到,hash_length的值为256和0时,结果都是一样的。