MySQL 加密/壓縮函數

來源:互聯網
上載者:User

這些問題可能導致資料值的改變。一般而言,上述問題可能在你使用非二進位串資料類型(如char,varchar,text等資料類型)的情況下發生。

  • AES_ENCRYPT()和AES_DECRYPT()

AES_ENCRYPT()和AES_DECRYPT()可以加密/解密使用官方AES演算法的資料。該演算法使用128位密鑰來編碼,但使用者可以將其擴充到256位。MySQL選用128位密鑰,因為這樣演算法實現更快,而且對大多數使用者而言它也足夠安全了。


AES_ENCRYPT(str,key_str)函數加密一個字串並返回一個二進位串。AES_DECRYPT(crypt_str, key_str) 函數可以解密使用官方AES(Advanced Encryption Standard)演算法加密的資料並返回原有字串,輸入變數可以是任意長度。如果輸入變數為NULL,那麼該函數返回結果也為NULL。


因為AES是一個塊級演算法,需要使用補白來編碼非偶數長度的字串。

  • ENCODE()和DECODE()

ENCODE(str, pass_str):該函數使用pass_str作為密碼來加密字串str,其加密的結果可以通過DECODE()函數來解密。該函數返回的結果是一個同str等長。 DECODE(crypt_str, pass_str):該函數使用pass_str作為密碼來解密使用ENCODE()加密後的字串crypt_str。

  • DES_ENCRYPT()和DES_ENCRYPT()

DES_ENCRYPT(str[, {key_num|key_str}]):該函數使用三重DES演算法連同給定的密鑰來加密加密字串。
DES_DECRYPT(crypt_str[, key_str]):該函數解密一個通過DES_ENCRYPT()加密的字串,如果出現錯誤,該函數返回NULL。

  • COMPRESS()和UNCOMPRESS()

COMPRESS(string_to_compress):該函數壓縮一個字串並且返回一個二進位串。該函數需要MySQL已連同一個壓縮庫一塊編譯,比如zlib,否則該函數的傳回值總為NULL。壓縮後的字串可以通過 UNCOMPRESS()函數來解壓縮。UNCOMPRESS(string_to_uncompress):該函數解壓縮一個通過COMPRESS() 函數壓縮的字串。如果變數不是一個壓縮值,則結果返回為NULL。

  • PASSWORD()

PASSWORD(str):該函數用來加密儲存在user表中 password列的MySQL密碼。PASSWORD()函數由MySQL伺服器中的認證系統使用,使用者不應該在自己的應用中使用該函數。如果需要使用加密函數,可以考慮使用MD5()或者SHA1()來代替。

其加密結果樣本如下:


在MySQL的系統資料庫mysql的user表中,有一個名為Password的列,其中儲存由password函數加密後的user的密碼資料。如下所示:


  • ENCRYPT()

ENCRYPT(str[, salt]):該函數通過使用Unix crypt()系統調用來加密str,並返回一個二進位串。其中,salt變數應該是一個包含多於兩個字元的字串。如果salt沒有給定,則使用一個隨機值。如果crypt()系統調用在使用者的作業系統上不可用(Windows作業系統便如此),該函數返回為NULL。

  • MD5()

MD5(str):該Function Compute一個字串的128位MD5校正和,返回的結果是由32個十六進位數字組成的二進位串。如果變數為NULL,則返回為NULL。

其加密結果樣本如下:

  • SHA1()/SHA():

SHA1(str)/SHA(str)Function Compute字串str的160位SHA-1校正和。傳回值是一個由40個十六進位數字組成的二進位串。如果變數為NULL,則返回NULL。

其加密結果樣本如下:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.