在新增一條數(shù)據(jù)庫記錄時,有時候密碼需要加密存儲,此時我們采用MYSQL自帶的加密算法
PASSWORD("YourPassword")經(jīng)過此函數(shù)后就可以將密碼加密后存儲在數(shù)據(jù)庫.
在修改密碼時同樣會用到這樣的函數(shù).
先將新輸入的密碼字符串,經(jīng)過此函數(shù)加密碼后,再與從數(shù)據(jù)庫取出的密碼作比較,這樣才能保證相匹配,否則永遠(yuǎn)也不可能相等.
為新輸入的字符串加密 select Password("YourPassowrd");用一人虛表進(jìn)行此函數(shù).
下面是一些相關(guān)的介紹
PASSWORD():創(chuàng)建一個經(jīng)過加密的密碼字符串,適合于插入到MySQL的安全系
統(tǒng)。該加密過程不可逆,和unix密碼加密過程使用不同的算法。主要用于MySQL的認(rèn)證系統(tǒng)。
ENCRYPT(,):使用UNIX crypt()系統(tǒng)加密字符串,ENCRYPT()函數(shù)接收要加密的字符串和(可選的)用于加密過程的salt(一個可以唯一確定口令的字符串,就像鑰匙一樣),注意,windows上不支持
ENCODE(,) DECODE(,):加密解密字符串。該函數(shù)有兩個參數(shù):被加密或解密的字符串和作為加密或解密基礎(chǔ)的密鑰。Encode結(jié)果是一個二進(jìn)制字符串,以BLOB類型存儲。加密成都相對比較弱
MD5():計(jì)算字符串的MD5校驗(yàn)和(128位)
SHA5():計(jì)算字符串的SHA5校驗(yàn)和(160位)
以上兩個函數(shù)返回的校驗(yàn)和是16進(jìn)制的,適合與認(rèn)證系統(tǒng)中使用的口令。
Eg:SELECT * FROM USERS WHERE NAME=’JOHN’ AND PASSWORD=MD5(‘MYPASS’);