成都賽維思網(wǎng)絡(luò)技術(shù)有限公司

新聞資訊

當(dāng)前位置:首頁 > 新聞資訊 > 網(wǎng)站建設(shè)開發(fā)

用SHA加密口令

來源:成都網(wǎng)站建設(shè)    作者:賽維思網(wǎng)絡(luò)    發(fā)布日期:2014-04-15    瀏覽:2272次

 MySQL SHA()函數(shù)會把 一段文本加密為唯一的40字符編碼。登錄用戶界面相當(dāng)簡單,不過我們還沒有滿足加密登錄口令的需求。MySQL提供了一個名為SHA()的函數(shù),它會對文本串應(yīng)用一個加密算法。其結(jié)果是一個加密串,長度固定為40個十六進(jìn)制字符,而不論原始口令的長度是多少。所以這個函數(shù)實(shí)際上會生成一個唯一表示口令的40字符編碼。

由于SHA()是一個MySQL函數(shù)而不是PHP函數(shù),所以調(diào)用這個函數(shù)時,要作為在表中插入口令的查詢的一部分。在登錄過程的另一端,同樣需要用到SHA()函數(shù),它會查看用戶輸入的口令是否與數(shù)據(jù)庫中存儲的加密口令匹配。

一旦對一個信息加密,很自然地會考慮在某個位置上對其解密。不過SHA()函數(shù)是一種單向加密,無法還原。這是為了確保加密數(shù)據(jù)的安全性,即使有人攻擊你的數(shù)據(jù)庫,并偷走所有口令,它們也無法對其解密。

要了解用戶登錄是否正確地輸入口令,你并不需要知道用戶的原始口令。這是因?yàn)?,只要提供同樣的文本串,SHA()就會生成相同的40字符編碼。所以只需對用戶輸入的登錄口令加密,并與用戶表中的密碼列中的值比較。這可以利用一個簡單的SQL查詢完成,根據(jù)一個口令來選擇匹配的用戶行。
 

Copyright ? www.yrgym.cn All Rights Reserved. 成都賽維思網(wǎng)絡(luò)技術(shù)有限公司  蜀ICP備13002520號-3   Sitemap