《Mysql學(xué)習(xí)MySQL 加密/壓縮函數(shù)》要點(diǎn):
本文介紹了Mysql學(xué)習(xí)MySQL 加密/壓縮函數(shù),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
這些問題可能導(dǎo)致數(shù)據(jù)值的改變.一般而言,上述問題可能在你使用非二進(jìn)制串?dāng)?shù)據(jù)類型(如char,varchar,text等數(shù)據(jù)類型)的情況下發(fā)生. MYSQL數(shù)據(jù)庫
AES_ENCRYPT()和AES_DECRYPT()可以加密/解密使用官方AES算法的數(shù)據(jù).該算法使用128位密鑰來編碼,但用戶可以將其擴(kuò)展到256位.MySQL選用128位密鑰,因?yàn)檫@樣算法實(shí)現(xiàn)更快,而且對(duì)大多數(shù)用戶而言它也足夠安全了. MYSQL數(shù)據(jù)庫
AES_ENCRYPT(str,key_str)函數(shù)加密一個(gè)字符串并返回一個(gè)二進(jìn)制串.AES_DECRYPT(crypt_str, key_str) 函數(shù)可以解密使用官方AES(Advanced Encryption Standard)算法加密的數(shù)據(jù)并返回原有字符串,輸入變量可以是任意長度.如果輸入變量為NULL,那么該函數(shù)返回結(jié)果也為NULL.
MYSQL數(shù)據(jù)庫
因?yàn)锳ES是一個(gè)塊級(jí)算法,需要使用補(bǔ)白來編碼非偶數(shù)長度的字符串. MYSQL數(shù)據(jù)庫
ENCODE(str, pass_str):該函數(shù)使用pass_str作為密碼來加密字符串str,其加密的結(jié)果可以通過DECODE()函數(shù)來解密.該函數(shù)返回的結(jié)果是一個(gè)同str等長. DECODE(crypt_str, pass_str):該函數(shù)使用pass_str作為密碼來解密使用ENCODE()加密后的字符串crypt_str. MYSQL數(shù)據(jù)庫
DES_ENCRYPT(str[, {key_num|key_str}]):該函數(shù)使用三重DES算法連同給定的密鑰來加密加密字符串.
DES_DECRYPT(crypt_str[, key_str]):該函數(shù)解密一個(gè)通過DES_ENCRYPT()加密的字符串,如果出現(xiàn)錯(cuò)誤,該函數(shù)返回NULL. MYSQL數(shù)據(jù)庫
COMPRESS(string_to_compress):該函數(shù)壓縮一個(gè)字符串并且返回一個(gè)二進(jìn)制串.該函數(shù)需要MySQL已連同一個(gè)壓縮庫一塊編譯,比如zlib,否則該函數(shù)的返回值總為NULL.壓縮后的字符串可以通過 UNCOMPRESS()函數(shù)來解壓縮.UNCOMPRESS(string_to_uncompress):該函數(shù)解壓縮一個(gè)通過COMPRESS() 函數(shù)壓縮的字符串.如果變量不是一個(gè)壓縮值,則結(jié)果返回為NULL. MYSQL數(shù)據(jù)庫
PASSWORD(str):該函數(shù)用來加密存儲(chǔ)在user表中 password列的MySQL密碼.PASSWORD()函數(shù)由MySQL服務(wù)器中的認(rèn)證系統(tǒng)使用,用戶不應(yīng)該在自己的應(yīng)用中使用該函數(shù).如果需要使用加密函數(shù),可以考慮使用MD5()或者SHA1()來代替. MYSQL數(shù)據(jù)庫
其加密結(jié)果示例如下: MYSQL數(shù)據(jù)庫
MYSQL數(shù)據(jù)庫
在MySQL的系統(tǒng)數(shù)據(jù)庫mysql的user表中,有一個(gè)名為Password的列,其中保存由password函數(shù)加密后的user的密碼數(shù)據(jù).如下所示: MYSQL數(shù)據(jù)庫
MYSQL數(shù)據(jù)庫
ENCRYPT(str[, salt]):該函數(shù)通過使用Unix crypt()系統(tǒng)調(diào)用來加密str,并返回一個(gè)二進(jìn)制串.其中,salt變量應(yīng)該是一個(gè)包含多于兩個(gè)字符的字符串.如果salt沒有給定,則使用一個(gè)隨機(jī)值.如果crypt()系統(tǒng)調(diào)用在用戶的操作系統(tǒng)上不可用(Windows操作系統(tǒng)便如此),該函數(shù)返回為NULL. MYSQL數(shù)據(jù)庫
MD5(str):該函數(shù)計(jì)算一個(gè)字符串的128位MD5校驗(yàn)和,返回的結(jié)果是由32個(gè)十六進(jìn)制數(shù)字組成的二進(jìn)制串.如果變量為NULL,則返回為NULL. MYSQL數(shù)據(jù)庫
其加密結(jié)果示例如下: MYSQL數(shù)據(jù)庫
MYSQL數(shù)據(jù)庫
SHA1(str)/SHA(str)函數(shù)計(jì)算字符串str的160位SHA-1校驗(yàn)和.返回值是一個(gè)由40個(gè)十六進(jìn)制數(shù)字組成的二進(jìn)制串.如果變量為NULL,則返回NULL. MYSQL數(shù)據(jù)庫
其加密結(jié)果示例如下: MYSQL數(shù)據(jù)庫
MYSQL數(shù)據(jù)庫
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/1071.html