从事网站建设的工资,公司网络组建设计与方案,新网站优化怎么做,网络工程师有前途吗MySQL提供了多种加密和压缩方式#xff0c;可以帮助保护数据库中的敏感数据。以下是一些常见的MySQL加密和压缩方法参考#xff1a; 建议收藏以备后续用到查阅参考。 目录
一、AES_ENCRYPT AES加密
二、AES_DECRYPT AES解密
三、COMPRESS 压缩字符串
四、UNCOMPRESS 解压… MySQL提供了多种加密和压缩方式可以帮助保护数据库中的敏感数据。以下是一些常见的MySQL加密和压缩方法参考 建议收藏以备后续用到查阅参考。 目录
一、AES_ENCRYPT AES加密
二、AES_DECRYPT AES解密
三、COMPRESS 压缩字符串
四、UNCOMPRESS 解压COMPRESS压缩字符串
五、UNCOMPRESSED_LENGTH 取压缩字符串的原始字符串的长度
六、MD5 md5加密
七、RANDOM_BYTES 随机生成指定长度字符串
八、SHA 字符串的SHA-1 160 位校验和
九、SHA1 字符串的SHA-1 160 位校验和
十、SHA2 给定字符串的 SHA-2 摘要
十一、STATEMENT_DIGEST 取SQL的哈希值
十二、STATEMENT_DIGEST_TEXT 取SQL的规范语句摘要 一、AES_ENCRYPT AES加密
MySQL AES_ENCRYPT() 函数使用 AES 加密算法加密一个字符串。
语法
SELECT AES_ENCRYPT(str, key_str)
参数说 str必需的。一个要加密的字符串。 key_str必需的。密钥。
返回值
加密后的二进制字符串。返回 NULL情况任意参数为 NULL。
示例
mysql SELECT AES_ENCRYPT(hello, 123456), AES_ENCRYPT(null, 123456), AES_ENCRYPT(hello, NULL);
-----------------------------------------------------------------------------------------
| AES_ENCRYPT(hello, 123456) | AES_ENCRYPT(null, 123456) | AES_ENCRYPT(hello, NULL) |
-----------------------------------------------------------------------------------------
| ÈòILWÅæ4s´ | NULL | NULL |
-----------------------------------------------------------------------------------------
1 row in set (0.00 sec)
二、AES_DECRYPT AES解密
MySQL AES_DECRYPT() 函数使用 AES 加密算法解密一个由 AES_ENCRYPT() 加密后的字符串。
语法
SELECT AES_DECRYPT(crypt_str, key_str)
参数说明
crypt_str必需的。一个要加密的字符串。key_str必需的。密钥。
返回值
解密后的原始明文字符串。返回 NULL情况任意参数为 NULL。
示例
SELECT AES_DECRYPT(AES_ENCRYPT(hello, abcde), abcde), // helloAES_DECRYPT(AES_ENCRYPT(hello, abcde), null); // NULL
三、COMPRESS 压缩字符串
MySQL COMPRESS() 函数压缩一个字符串并返回压缩后的二进制字符串。 要解压缩 COMPRESS() 函数压缩后的内容请使用 UNCOMPRESS() 函数。
语法
COMPRESS(str)
参数说明 str必需的。一个要压缩的字符串。
返回值
压缩后的二进制字符串。返回 NULL情况参数为 NULL。
示例
mysql SELECT COMPRESS(hello), LENGTH(COMPRESS(hello)),COMPRESS(),LENGTH(COMPRESS());
----------------------------------------------------------------------------------
| COMPRESS(hello) | LENGTH(COMPRESS(hello)) | COMPRESS() | LENGTH(COMPRESS()) |
----------------------------------------------------------------------------------
| x??H??? , | 17 | | 0 |
---------------------------------------------------------------------------------- 看似压缩后的字符串比原字符串还要长。 下面用函数REPEAT 函数来生成指定长度的字符串再压缩看。
mysql SELECT LENGTH(REPEAT(abc, 1000)), LENGTH(COMPRESS(REPEAT(abc, 1000)));
--------------------------------------------------------------------
| LENGTH(REPEAT(abc, 1000)) | LENGTH(COMPRESS(REPEAT(abc, 1000))) |
--------------------------------------------------------------------
| 3000 | 33 |
-------------------------------------------------------------------- 压缩效果3000长度的字符串压缩后长度为33
四、UNCOMPRESS 解压COMPRESS压缩字符串
MySQL UNCOMPRESS() 函数解压缩 COMPRESS() 函数压缩后的字符串。
语法
UNCOMPRESS(str_to_uncompress)
参数说明 str_to_uncompress必需的。一个要解压缩的字符串。
返回值
解压缩指定的字符串 str_to_uncompress并将结果作为二进制字符串返回。返回 NULL情况参数为 NULL。
示例
mysql SELECT UNCOMPRESS(COMPRESS(abcdefghjiklmnopqrstuvwxtz)),COMPRESS(abcdefghjiklmnopqrstuvwxtz);
--------------------------------------------------------------------------------------------
| UNCOMPRESS(COMPRESS(abcdefghjiklmnopqrstuvwxtz)) | COMPRESS(abcdefghjiklmnopqrstuvwxtz) |
--------------------------------------------------------------------------------------------
| abcdefghjiklmnopqrstuvwxtz | x?KLJNIMK????????/(,*.)-?(? ?} |
--------------------------------------------------------------------------------------------
五、UNCOMPRESSED_LENGTH 取压缩字符串的原始字符串的长度
MySQL UNCOMPRESSED_LENGTH() 函数返回一个压缩的字符串的原始字符串的长度。
语法
UNCOMPRESSED_LENGTH(compressed_str)参数说明
compressed_str必需的。一个使用 COMPRESS() 函数压缩后的字符串。
返回值
一个压缩的字符串的原始字符串的长度。返回 NULL情况参数为NULL。
示例
mysql SELECT UNCOMPRESSED_LENGTH(COMPRESS(abcdefghjiklmnopqrstuvwxtz)),COMPRESS(abcdefghjiklmnopqrstuvwxtz);
-----------------------------------------------------------------------------------------------------
| UNCOMPRESSED_LENGTH(COMPRESS(abcdefghjiklmnopqrstuvwxtz)) | COMPRESS(abcdefghjiklmnopqrstuvwxtz) |
-----------------------------------------------------------------------------------------------------
| 26 | x?KLJNIMK????????/(,*.)-?(? ?} |
-----------------------------------------------------------------------------------------------------
六、MD5 md5加密
MySQL MD5() 函数计算一个给定字符串的 MD5 摘要并将结果作为一个 32 位的由十六进制字符组成的字符串返回。
语法
MD5(str)参数说明
str必需的。一个要计算 MD5 值的字符串。
返回值
32 位的由十六进制字符组成的字符串。返回 NULL情况参数为 NULL。
示例
mysql SELECT MD5(abc);
----------------------------------
| MD5(abc) |
----------------------------------
| 900150983cd24fb0d6963f7d28e17f72 |
----------------------------------
七、RANDOM_BYTES 随机生成指定长度字符串
MySQL RANDOM_BYTES() 函数随机生成一个指定长度的的二进制串。
语法
RANDOM_BYTES(len)参数说明
len必需的。一个要计算 RANDOM_BYTES 值的字符串。
返回值
一个长度为 len 的由随机字节产生的字符串。返回 NULL情况参数 len 为 NULL。
示例
mysql SELECT RANDOM_BYTES(10),LENGTH(RANDOM_BYTES(10)),RANDOM_BYTES(NULL);
----------------------------------------------------------------
| RANDOM_BYTES(10) | LENGTH(RANDOM_BYTES(10)) | RANDOM_BYTES(NULL) |
----------------------------------------------------------------
| ?m ?? | 10 | NULL |
----------------------------------------------------------------
八、SHA 字符串的SHA-1 160 位校验和
MySQL SHA() 函数计算并返回给定字符串的 SHA-1 160 位校验和。 SHA() 函数与 MD5() 函数类似也是一种计算摘要的函数。 MySQL SHA() 函数等效于 SHA1() 函数。
语法
SHA(str)参数说明 str必需的。一个要计算 SHA-1 160 位校验和的字符串。
返回值
指定字符串的 SHA-1 160 位校验和。40 位的由十六进制字符组成的字符串返回 NULL情况参数为NULL。
示例
mysql SELECT SHA(hello),SHA(NULL);
-----------------------------------------------------
| SHA(hello) | SHA(NULL) |
-----------------------------------------------------
| aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d | NULL |
-----------------------------------------------------
九、SHA1 字符串的SHA-1 160 位校验和
MySQL SHA1() 函数计算并返回给定字符串的 SHA-1 160 位校验和。 SHA1() 函数与 MD5() 函数类似也是一种计算摘要的函数。 MySQL SHA1() 函数等效于 SHA() 函数。 十、SHA2 给定字符串的 SHA-2 摘要
MySQL SHA2() 函数计算并返回给定字符串的 SHA-2 摘要包括 SHA-224, SHA-256, SHA-384, 和 SHA-512 算法。 SHA2() 函数与 MD5() 函数类似也是一种计算摘要的函数。
语法
SHA2(str, hash_length)参数说明
str必需的。一个要计算 SHA-2 校验和的字符串。hash_length必需的。哈希长度可用值包括 224, 256, 384, 512 和 0 (相当于 256) 分别对应了 SHA-224, SHA-256, SHA-384, 和 SHA-512 算法。
返回值
一个由十六进制字符组成的字符串它是指定字符串的 SHA-2 摘要。
示例
mysql SELECT SHA2(hello, 224),SHA2(NULL, 1);
-------------------------------------------------------------------------
| SHA2(hello, 224) | SHA2(NULL, 1) |
-------------------------------------------------------------------------
| ea09ae9cc6768c50fcee903ed054556e5bfc8347907f12598aa24193 | NULL |
-------------------------------------------------------------------------
十一、STATEMENT_DIGEST 取SQL的哈希值
MySQL STATEMENT_DIGEST() 函数计算以字符串形式给定的 SQL 语句的语句摘要哈希值并返回。
语法
STATEMENT_DIGEST(sql_stmt)参数说明
sql_stmt必需的。一个要计算语句摘要哈希值的字符串。
返回值
以字符串形式给定的 SQL 语句的语句摘要哈希值。
示例
mysql SELECT STATEMENT_DIGEST(SELECT 1),STATEMENT_DIGEST(NULL);
------------------------------------------------------------------------------------------
| STATEMENT_DIGEST(SELECT 1) | STATEMENT_DIGEST(NULL) |
------------------------------------------------------------------------------------------
| d1b44b0c19af710b5a679907e284acd2ddc285201794bc69a2389d77baedddae | NULL |
------------------------------------------------------------------------------------------
十二、STATEMENT_DIGEST_TEXT 取SQL的规范语句摘要
MySQL STATEMENT_DIGEST_TEXT() 函数返回以字符串形式给定的 SQL 语句的规范语句摘要。
语法
STATEMENT_DIGEST_TEXT(sql_stmt)参数说明 sql_stmt必需的。一个要计算规范语句摘要的字符串。
返回值
SQL 语句的规范语句摘要。返回 NULL情况任意参数为 NULL。
示例
mysql SELECT STATEMENT_DIGEST_TEXT(SELECT * FROM t WHERE a 1),STATEMENT_DIGEST_TEXT(NULL);
-----------------------------------------------------------------------------------
| STATEMENT_DIGEST_TEXT(SELECT * FROM t WHERE a 1) | STATEMENT_DIGEST_TEXT(NULL) |
-----------------------------------------------------------------------------------
| SELECT * FROM t WHERE a ? | NULL |
-----------------------------------------------------------------------------------