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