a) 函數 AES_ENCRYPT(str ,key_str ) , AES_DECRYPT(crypt_str ,key_str )

公司主營業(yè)務:網站設計制作、成都網站制作、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現互聯網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯推出旅順口免費做網站回饋大家。
函數使用說明:這些函數允許使用官方 AES 進行加密和數據加密 ( 高級加密標準 ) 算法 , 即以前人們所熟知的 “Rijndael” 。 保密關鍵字的長度為 128 比特,不過你可以通過改變源而將其延長到 256 比特。我們選擇了 128 比特的原因是它的速度要快得多,且對于大多數用途而言這個保密程度已經夠用。
b) 函數DECODE(crypt_str ,pass_str )
函數使用說明:使用 pass_str 作為密碼,解密加密字符串 crypt_str , crypt_str 應該是由 ENCODE() 返回的字符串。
c) 函數 ENCODE(str ,pass_str )
函數使用說明:使用 pass_str 作為密碼,解密 str 。 使用 DECODE() 解密結果。
d) 函數 DES_DECRYPT(crypt_str [,key_str ])
函數使用說明:使用 DES_ENCRYPT() 加密一個字符串。若出現錯誤,這個函數會返回 NULL 。
e) 函數 DES_ENCRYPT(str [,(key_num |key_str )])
函數使用說明:用 Triple-DES 算法給出的關鍵字加密字符串。若出現錯誤,這個函數會返回 NULL 。
f) 函數 ENCRYPT(str [,salt ])
函數使用說明:使用 Unix crypt() 系統(tǒng)調用加密 str 。 salt 參數應為一個至少包含 2 個字符的字符串。若沒有給出 salt 參數,則使用任意值。
g) 函數 MD5(str )
函數使用說明:為字符串算出一個 MD5 128 比特檢查和。該值以 32 位十六進制數字的二進制字符串的形式返回 , 若參數為 NULL 則會返回 NULL 。例如,返回值可被用作散列關鍵字
h) 函數 OLD_PASSWORD(str )
函數使用說明:當 PASSWORD() 的執(zhí)行變?yōu)楦纳瓢踩詴r, OLD_PASSWORD() 會被添加到 MySQL 。 OLD_PASSWORD() 返回從前的 PASSWORD() 執(zhí)行值 ( 4.1 之前 ) ,同時允許你為任何 4.1 之前的需要連接到你的 5.1 版本 MySQL 服務器前客戶端設置密碼,從而不至于將它們切斷
i) 函數PASSWORD(str )
函數使用說明:從原文密碼str 計算并返回密碼字符串,當參數為 NULL 時返回 NULL 。這個函數用于用戶授權表的Password 列中的加密MySQL 密碼存儲
使用mysql的加密函數運行:
select HEX(AES_ENCRYPT( 'test aes encrypt','123')) as aesTest
輸出密文:
17CDAE577C715A0B5A922BF07462622AF15884B6D0F596B0241DC8F966C4A93F
官方文檔解釋:
The block_encryption_mode system variable controls the mode for block-based encryption algorithms. Its default value is font color="red" aes-128-ecb /font, which signifies encryption using a key length of 128 bits and ECB mode. For a description of the permitted values of this variable, see Section 5.1.8, “Server System Variables” .
在線加密驗證 :
該網加密結果為:
17cdae577c715a0b5a922bf07462622af15884b6d0f596b0241dc8f966c4a93f
與mysql加密結果一致,只是大小寫差異。
原因:mysql8 之前的版本中加密規(guī)則是mysql_native_password,而在mysql8之后,加密規(guī)則改為caching_sha2_password
解決辦法:
1、升級客戶端
2、把mysql用戶登錄密碼加密規(guī)則還原成mysql_native_password:
ALTER USER xxxx IDENTIFIED WITH mysql_native_password BY '新密碼';
沒有用過mysql加密,但一般都是用服務端語言把數據加密后存入數據庫中,比如,在PHP里用md5函數把用戶的密碼加密之后存入數據中,一般都 是這么解決的。
MySQL數據庫的認證密碼有兩種方式,
MySQL 4.1版本之前是MySQL323加密,MySQL 4.1和之后的版本都是MySQLSHA1加密,
MySQL數據庫中自帶Old_Password(str)和Password(str)函數,它們均可以在MySQL數據庫里進行查詢,前者是MySQL323加密,后者是MySQLSHA1方式加密。
(1)以MySQL323方式加密
select??old_password('111111');
(2)以MySQLSHA1方式加密
select password('111111');
MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入實際的密碼運算中,通過觀察在很多用戶中都攜帶了"*",在實際破解過程中去掉"*",也就是說MySQLSHA1加密的密碼的實際位數是40位。
文章名稱:mysql8怎么加密函數,mysql加密解密函數
本文地址:http://chinadenli.net/article3/dsgsdis.html
成都網站建設公司_創(chuàng)新互聯,為您提供電子商務、、網站排名、微信公眾號、網站內鏈、建站公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯