MySQL數(shù)據(jù)庫如何加密和解密

在安全領(lǐng)域,數(shù)據(jù)加密、解密非常的重要。對程序員而言,在數(shù)據(jù)庫中以密文方式存儲用戶密碼對入侵者剽竊用戶隱私意義重大。

有多種前端加密算法可用于數(shù)據(jù)加密、解密,下面我向您推薦一種簡單的數(shù)據(jù)庫級別的數(shù)據(jù)加密、解密解決方案。

以MySQL數(shù)據(jù)庫為例,它內(nèi)建了相應(yīng)的加密函數(shù)(AES_ENCRYPT() )和解密函數(shù)(AES_DECRYPT())。

在表中插入加密數(shù)據(jù)

1.INSERT INTO userdata(username,pasword,encryptedpassword)
 VALUES ('smith','htims',AES_ENCRYPT('htims','key'))

上面的插入語句有三個字段,“用戶名”、“密碼”和“加密的密碼”。AES_ENCRYPT()函數(shù)需要一個“key”來協(xié)助加密,同樣,解密也需要它(請牢記?。?。

從表中查詢加密數(shù)據(jù)

1.SELECT username,pasword,AES_DECRYPT(encryptedpassword,'key')
 FROM userdata
上面的查詢語句使用了AES_DECRYPT()函數(shù)。下面是運行結(jié)果:

在上面的截圖中,我們可以看到“pasword”和“decryptedpassword”字段的值是相同的,也就是說,你解密了用戶密碼。