數據庫加密解密


MySQL加密算法
1.不可逆加密:
PASSWORD(),ENCRYPT(,),MD5(),SHA5()。
2.可逆的加密算法:
ENCODE(,)   DECODE(,):加密解密字符串。該函數有兩個參數:被加密或解密的字符串和作為加密或解密基礎的密鑰。Encode結果是一個二進制字符串,以BLOB類型存儲。加密成都相對比較弱。

AES_ENCRYPT(,)   AES_DECRYPT(,)  :加密解密字符串。該函數有兩個參數:被加密或解密的字符串和作為加密或解密基礎的密鑰。Encode結果是一個二進制字符串,以BLOB類型存儲。
加密完成之后可以用TO_BASE64()轉成可見字符,然后解密的時候用FROM_BASE64轉回來。

例如:
SELECT TO_BASE64(AES_ENCRYPT('HelloWorld','key'));
SELECT AES_DECRYPT(FROM_BASE64('MnD6XDZ0ShCHQ13bP5I6ag=='),'key');

一.加密數據庫中的已經存在的數據

 -- 使用腳本加密數據庫中的數據
UPDATE crm_member 
SET phone = (
    SELECT
        a.mima 
    FROM
        ( SELECT TO_BASE64 ( AES_ENCRYPT( ( SELECT phone FROM crm_member WHERE id = 258004 ), 'key' ) ) mima ) a 
    ) 
WHERE
    id = 258004
    
 1 -- 數據庫中已經加密的數據進行解密
 2 UPDATE crm_member 
 3 SET phone = (
 4     SELECT
 5         a.mima 
 6     FROM
 7         ( SELECT AES_DECRYPT( FROM_BASE64 ( ( SELECT phone FROM crm_member WHERE id = 258004 ) ), 'key' ) mima ) a 
 8     ) 
 9 WHERE
10     id = 258004

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM