最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL加密和壓縮函數(shù)詳解以及實戰(zhàn)(附示例)

 更新時間:2023年12月22日 08:30:39   作者:小賢java  
這篇文章主要給大家介紹了關(guān)于MYSQL加密和壓縮函數(shù)詳解以及實戰(zhàn)的相關(guān)資料,加密函數(shù)主要用來對數(shù)據(jù)進行加密和界面處理,以保證某些重要數(shù)據(jù)不被別人獲取,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

MySQL提供了多種加密和壓縮方式,可以幫助保護數(shù)據(jù)庫中的敏感數(shù)據(jù)。以下是一些常見的MySQL加密和壓縮方法參考:

一、AES_ENCRYPT AES加密

MySQL AES_ENCRYPT() 函數(shù)使用 AES 加密算法加密一個字符串。

語法:

SELECT AES_ENCRYPT(str, key_str)

參數(shù)說:

  • str:必需的。一個要加密的字符串。

  • key_str:必需的。密鑰。

返回值:

  • 加密后的二進制字符串。
  • 返回 NULL情況:任意參數(shù)為 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) |
+--------------------------------+-----------------------------+----------------------------+
| èòIL&W??4@s′                   | NULL                        | NULL                       |
+--------------------------------+-----------------------------+----------------------------+
1 row in set (0.00 sec)

二、AES_DECRYPT AES解密

MySQL AES_DECRYPT() 函數(shù)使用 AES 加密算法解密一個由 AES_ENCRYPT() 加密后的字符串。

語法:

SELECT AES_DECRYPT(crypt_str, key_str)

參數(shù)說明:

  • crypt_str:必需的。一個要加密的字符串。
  • key_str:必需的。密鑰。

返回值:

  • 解密后的原始明文字符串。
  • 返回 NULL情況:任意參數(shù)為 NULL。

示例:

SELECT 
	AES_DECRYPT(AES_ENCRYPT('hello', 'abcde'), 'abcde'),    // hello
	AES_DECRYPT(AES_ENCRYPT('hello', 'abcde'), null);       // NULL

三、COMPRESS 壓縮字符串

MySQL COMPRESS() 函數(shù)壓縮一個字符串并返回壓縮后的二進制字符串。

要解壓縮 COMPRESS() 函數(shù)壓縮后的內(nèi)容,請使用 UNCOMPRESS() 函數(shù)。

語法:

COMPRESS(str)

參數(shù)說明:

  • str:必需的。一個要壓縮的字符串。

返回值:

  • 壓縮后的二進制字符串。
  • 返回 NULL情況:參數(shù)為 NULL。

示例:

mysql> SELECT COMPRESS('hello'), LENGTH(COMPRESS('hello')),COMPRESS(''),LENGTH(COMPRESS(''));
+-------------------+---------------------------+--------------+----------------------+
| COMPRESS('hello') | LENGTH(COMPRESS('hello')) | COMPRESS('') | LENGTH(COMPRESS('')) |
+-------------------+---------------------------+--------------+----------------------+
|    x??H??? ,      |                        17 |              |                    0 |
+-------------------+---------------------------+--------------+----------------------+

        看似壓縮后的字符串比原字符串還要長。

        下面用函數(shù)REPEAT 函數(shù)來生成指定長度的字符串再壓縮看。

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() 函數(shù)解壓縮 COMPRESS() 函數(shù)壓縮后的字符串。

語法:

UNCOMPRESS(str_to_uncompress)

參數(shù)說明:

  • str_to_uncompress:必需的。一個要解壓縮的字符串。

返回值:

  • 解壓縮指定的字符串 str_to_uncompress,并將結(jié)果作為二進制字符串返回。
  • 返回 NULL情況:參數(shù)為 NULL。

示例:

mysql> SELECT UNCOMPRESS(COMPRESS('abcdefghjiklmnopqrstuvwxtz')),COMPRESS('abcdefghjiklmnopqrstuvwxtz');
+----------------------------------------------------+----------------------------------------+
| UNCOMPRESS(COMPRESS('abcdefghjiklmnopqrstuvwxtz')) | COMPRESS('abcdefghjiklmnopqrstuvwxtz') |
+----------------------------------------------------+----------------------------------------+
| abcdefghjiklmnopqrstuvwxtz                         |    x?KLJNIMK????????/(,*.)-+?(? ?}     |
+----------------------------------------------------+----------------------------------------+

五、UNCOMPRESSED_LENGTH 取壓縮字符串的原始字符串的長度

MySQL UNCOMPRESSED_LENGTH() 函數(shù)返回一個壓縮的字符串的原始字符串的長度。

語法:

UNCOMPRESSED_LENGTH(compressed_str)

參數(shù)說明:

  • compressed_str:必需的。一個使用 COMPRESS() 函數(shù)壓縮后的字符串。

返回值:

  • 一個壓縮的字符串的原始字符串的長度。
  • 返回 NULL情況:參數(shù)為NULL。

示例:

mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS('abcdefghjiklmnopqrstuvwxtz')),COMPRESS('abcdefghjiklmnopqrstuvwxtz');
+-------------------------------------------------------------+----------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS('abcdefghjiklmnopqrstuvwxtz')) | COMPRESS('abcdefghjiklmnopqrstuvwxtz') |
+-------------------------------------------------------------+----------------------------------------+
|                                                          26 |    x?KLJNIMK????????/(,*.)-+?(? ?}     |
+-------------------------------------------------------------+----------------------------------------+

六、MD5 md5加密

MySQL MD5() 函數(shù)計算一個給定字符串的 MD5 摘要,并將結(jié)果作為一個 32 位的由十六進制字符組成的字符串返回。

語法:

MD5(str)

參數(shù)說明:

  • str:必需的。一個要計算 MD5 值的字符串。

返回值:

  • 32 位的由十六進制字符組成的字符串。
  • 返回 NULL情況:參數(shù)為 NULL。

示例:

mysql> SELECT MD5('abc');
+----------------------------------+
| MD5('abc')                       |
+----------------------------------+
| 900150983cd24fb0d6963f7d28e17f72 |
+----------------------------------+

七、RANDOM_BYTES 隨機生成指定長度字符串

MySQL RANDOM_BYTES() 函數(shù)隨機生成一個指定長度的的二進制串。

語法:

RANDOM_BYTES(len)

參數(shù)說明:

  • len:必需的。一個要計算 RANDOM_BYTES 值的字符串。

返回值:

  • 一個長度為 len 的由隨機字節(jié)產(chǎn)生的字符串。
  • 返回 NULL情況:參數(shù) 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() 函數(shù)計算并返回給定字符串的 SHA-1 160 位校驗和。 SHA() 函數(shù)與 MD5() 函數(shù)類似,也是一種計算摘要的函數(shù)。

MySQL SHA() 函數(shù)等效于 SHA1() 函數(shù)。

語法:

SHA(str)

參數(shù)說明:

  • str:必需的。一個要計算 SHA-1 160 位校驗和的字符串。

返回值:

  • 指定字符串的 SHA-1 160 位校驗和。(40 位的由十六進制字符組成的字符串)
  • 返回 NULL情況:參數(shù)為NULL。

示例:

mysql> SELECT SHA('hello'),SHA(NULL);
+------------------------------------------+-----------+
| SHA('hello')                             | SHA(NULL) |
+------------------------------------------+-----------+
| aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d | NULL      |
+------------------------------------------+-----------+

九、SHA1 字符串的SHA-1 160 位校驗和

MySQL SHA1() 函數(shù)計算并返回給定字符串的 SHA-1 160 位校驗和。 SHA1() 函數(shù)與 MD5() 函數(shù)類似,也是一種計算摘要的函數(shù)。
MySQL SHA1() 函數(shù)等效于 SHA() 函數(shù)。

十、SHA2 給定字符串的 SHA-2 摘要

MySQL SHA2() 函數(shù)計算并返回給定字符串的 SHA-2 摘要,包括: SHA-224, SHA-256, SHA-384, 和 SHA-512 算法。

SHA2() 函數(shù)與 MD5() 函數(shù)類似,也是一種計算摘要的函數(shù)。

語法:

SHA2(str, hash_length)

參數(shù)說明:

  • str:必需的。一個要計算 SHA-2 校驗和的字符串。
  • hash_length:必需的。哈希長度,可用值包括 224256384512 和 0 (相當(dāng)于 256), 分別對應(yīng)了 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() 函數(shù)計算以字符串形式給定的 SQL 語句的語句摘要哈希值并返回。

語法:

STATEMENT_DIGEST(sql_stmt)

參數(shù)說明:

  • 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的規(guī)范語句摘要

MySQL STATEMENT_DIGEST_TEXT() 函數(shù)返回以字符串形式給定的 SQL 語句的規(guī)范語句摘要。

語法:

STATEMENT_DIGEST_TEXT(sql_stmt)

參數(shù)說明:

  • sql_stmt:必需的。一個要計算規(guī)范語句摘要的字符串。

返回值:

  • SQL 語句的規(guī)范語句摘要。
  • 返回 NULL情況:任意參數(shù)為 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                        |
+------------------------------------------------------+-----------------------------+

總結(jié) 

到此這篇關(guān)于MYSQL加密和壓縮函數(shù)詳解及實戰(zhàn)的文章就介紹到這了,更多相關(guān)MYSQL加密和壓縮函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • MySQL 鎖體系從 MDL到間隙鎖詳解

    MySQL 鎖體系從 MDL到間隙鎖詳解

    本文詳細解析了MySQL的鎖機制,包括MDL鎖、意向鎖和鎖,并解釋了不同鎖的的使用場景和潛在問題沖突,強調(diào)理解鎖機制對以優(yōu)化數(shù)據(jù)庫性能,感興趣的朋友一起看看吧
    2026-06-06
  • Mysql主從復(fù)制注意事項的講解

    Mysql主從復(fù)制注意事項的講解

    今天小編就為大家分享一篇關(guān)于Mysql主從復(fù)制注意事項的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • MySQL慢查詢相關(guān)參數(shù)原理解析

    MySQL慢查詢相關(guān)參數(shù)原理解析

    這篇文章主要介紹了MySQL慢查詢相關(guān)參數(shù)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 詳解MySQL從入門到放棄-安裝

    詳解MySQL從入門到放棄-安裝

    這篇文章主要介紹了MySQL從入門到放棄-安裝,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳解MySql自連接,外連接,內(nèi)連接?,左連接,右連接

    詳解MySql自連接,外連接,內(nèi)連接?,左連接,右連接

    這篇文章主要介紹了詳解MySql自連接,外連接,內(nèi)連接?,左連接,右連接,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • mysql 8.0.16 winx64安裝配置方法圖文教程

    mysql 8.0.16 winx64安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價值,感興趣的朋友可以參考一下
    2019-05-05
  • MySQL完整性約束的定義與實例教程

    MySQL完整性約束的定義與實例教程

    數(shù)據(jù)完整性約束是對關(guān)系性模型完整性規(guī)則做某種約束條件,這篇文章主要給大家介紹了關(guān)于MySQL完整性約束的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • MySQL中int(10) 的 10代表什么

    MySQL中int(10) 的 10代表什么

    在MySQL中,我們定義int類型時需要設(shè)置長度,比如INT(10),那么10到底代表什么,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • MySQL主從復(fù)制原理與配置

    MySQL主從復(fù)制原理與配置

    主從備份是數(shù)據(jù)庫高可用性方案的一種,通過配置主服務(wù)器和從服務(wù)器來實現(xiàn)數(shù)據(jù)同步,主庫將操作寫入binlog,從庫讀取后復(fù)制數(shù)據(jù),保持一致性,配置包括修改my.cnf文件、重啟數(shù)據(jù)庫、建立連接等步驟,完成后,可以通過特定命令查看從服務(wù)器狀態(tài),確保同步成功
    2024-10-10
  • mysql binlog占用大量磁盤空間的解決方法

    mysql binlog占用大量磁盤空間的解決方法

    MySQL binlog(Binary Log)是MySQL數(shù)據(jù)庫的一種重要組件,用于記錄所有對數(shù)據(jù)庫的更改操作,當(dāng)MySQL服務(wù)器接收到對數(shù)據(jù)庫的寫入請求并成功執(zhí)行后,這些更改會被寫入binlog,本文給大家介紹了mysql binlog占用大量磁盤空間的解決方法,需要的朋友可以參考下
    2024-06-06

最新評論

巩义市| 嘉峪关市| 独山县| 惠来县| 利辛县| 南木林县| 屯留县| 建始县| 淮北市| 普宁市| 行唐县| 当涂县| 峡江县| 天峨县| 江孜县| 苏尼特右旗| 临漳县| 锡林浩特市| 灌云县| 莒南县| 永嘉县| 克山县| 昌江| 正定县| 双江| 竹北市| 留坝县| 柞水县| 台前县| 黄浦区| 黄龙县| 华容县| 佳木斯市| 萝北县| 长白| 商都县| 泾源县| 永州市| 兰州市| 铁岭市| 惠来县|