[精讚] [會員登入]
4652

[Mysql/MariaDB] 加解密函數

Mysql/MariaDB上的加解密函數

分享此文連結 //n.sfs.tw/10599

分享連結 [Mysql/MariaDB] 加解密函數@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-23 17:27:43 最後編修
2017-01-12 22:13:36 By 張○○
 

自動目錄

加密是將字串(明文)用金鑰(key)編碼成為看不懂的字串(密文)的過程,解密是拿金鑰把看不懂的字串(密文)變回原字串(明文)的過程

並不是所有的字串加密完後都能解回來,主要有分為單向和雙向:

單向:只能加密不能解密。這種方法多半是使用映射法產生密文,大家比較耳熟能詳的 md5 和 sha等就是單向的。

雙向:能用key加密後也用key解回明文的,常見的SSL、SSH就是雙向。

mysql提供的加解密函式

[單向加密]

1. MD5--  長32個字元,以下範例插入一個加密的密碼。

    INSERT INTO `MEMBER`(`PASSWD`) VALUES ( MD5('1234567') );

2. ENCRYPT-- 這是使用和 Unix 上 encrypt() 相同的函數,產生密文長度為13

   他的優點是密文短,可以變動key值;缺點是如果要加密的明文太長,會只取明文前8個字元:

   範例
   SELECT encrypt('123456789','thekey');  

   輸出結果
   thKcEYDVzryp

   其中 'thekey' 是稱為 salt 的key,可以省略 (若salt 沒省略,長度>=2)

3. PASSWORD-- 這是MySQL預設的加密法,也用在設定使用者的密碼上面。例如設定 root 密碼

   UPDATE `user` SET `Password`=Password('123456789') WHERE `User`='root';

[雙向加密]

1. 雙向中最易用的是 ENCODE 和 DECODE,他的語法:

  ENCODE(str, pass_str)

  DECODE(crpty_str, pass_str)

  其中 pass_str 就是 key 值

  這兩個函數使用有1個限制:儲存密文的欄位(以上例crpty_str)一定要為 BLOB,因為密文是二進制字串

  範例,用my_key 加密 my_string
  SELECT encode('my string',  'my_key') ;

2. AES_ENCRYPT(),  AES_DECRYPT()

  AES_ENCRYPT(str,key_str)

  AES_DECRYPT(crypt_str,key_str)

3. DES_ENCRYPT(),  DES_DECRYPT()

參考資料

[1] https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_encrypt


編修自原文 2010-02-09 06:47:25

END

你可能感興趣的文章

[MySQL] console mode 的亂碼處理 使用MySQL的console mode如果出現亂碼 在,要怎麼處理?

[Mysql/Mariadb] 建立使用者及資料庫 Mysql/Mariadb建立使用者、刪除使用者、給予權限、建立資料庫

[Mysql/Mariadb] Left Join 和 Right Join 合併表單 SQL語法中的 Left Join 和 Right Join 很常用,但是我常會忘記,所以寫下來備忘。

[Mysql/MariaDB] 修改資料庫、表格或欄位名稱 Mysql/MariaDB修改資料庫、表格或欄位名稱

[MySQL/Mariadb] console 將查詢結果輸出到檔案 在mysql 的console中該如何將查詢結果輸出到檔案?

[Mysql] 使用索引來加速搜尋 只要是常常用到搜索條件的欄位,就應該把它設成索引鍵,有無設定的速度差可能會好幾倍

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

詭異的創業思維 創業的思維中,有多少銀彈,有多少技術,有多少人脈,有多少時間等等,每個都要考慮進去,以熱忱建立的關係脆弱的像蘇打餅乾一樣..

正則表達式:Email名稱防止連續輸入點(.)及下底線(_) Email的名稱中要允許特殊符號,但又不允許連續出現的正則表達式

問問題 問問題其實內涵很深,我悟了很久才懂。 有人問題的目的並不一定是想要得到答案,有時只是純粹想問問題..

安裝網頁套件管理程式 Bower 一個非常棒的Javascript套件管理程式bower,用完愛不釋手。

[Mysql] 使用索引來加速搜尋 只要是常常用到搜索條件的欄位,就應該把它設成索引鍵,有無設定的速度差可能會好幾倍