mysql數據庫字段加密函數

php程序中有內置的aes算法函數能夠完成加密和解密,但aes算法有個特色:使用一樣的明文和祕鑰加密獲得的結果每次都不同,這是它的優勢,但在作密文字符串比較的時候就會比較麻煩。php

加密:先經過AES加密獲得一個二進制的密文,而後把密文用HEX函數轉換成16進制,最終獲得的字符串長度爲64位,就能夠插入數據表中了算法

HEX(AES_ENCRYPT('15','abcdefgh'))

解密:這就要反其道而行,先轉回到二進制,而後再解密sql

AES_DECRYPT(UNHEX(money),'abcdefgh')

表中字段被加密後,仍然能夠作各類查詢操做:函數

/*在加密字段上使用統計函數*/
SELECT SUM(AES_DECRYPT(UNHEX(money),'abcdefgh')) FROM test;

/*加密字段做爲比較條件查詢*/
SELECT * FROM test WHERE AES_DECRYPT(UNHEX(money),'abcdefgh') = 50; 

/*查詢時獲取解密後的明文*/
SELECT AES_DECRYPT(UNHEX(money),'abcdefgh') AS money FROM test;

應用場景:用戶註冊信息中的密碼,比較敏感的財務數據等加密

相關文章
相關標籤/搜索