ASP.NET with C#使用md5,sha1加密初探
發表于:2007-06-30來源:作者:點擊數:
標簽:
/******雪龍原創*******/ //版權所有,末經作者同意不得轉載 今天的實驗還是比較順利的,早上正則表達式用得很爽,晚上的MD5和SHA1加密也是沒什么難度就用上了,下面是實驗總結(洗衣機在洗衣服,趁機上網寫點東西)。 先補充點加密知識:MD5和SHA1都是散列
/******雪龍原創*******/
//版權所有,末經作者同意不得轉載
今天的實驗還是比較順利的,早上正則表達式用得很爽,晚上的MD5和SHA1加密也是沒什么難度就用上了,下面是實驗總結(洗衣機在洗衣服,趁機上網寫點東西)。
先補充點加密
知識:MD5和SHA1都是散列加密技術,所謂的散列加密就是無論你的輸入字符串是什么,有多長,加密后都變成唯一的定長的加密串,MD5加密后的密串長度有16位的和32位兩種,SHA1我今天數了一下有40位,這種加密方式的特點是加密方式是公開的,但你不能逆推,要破解只能窮舉,難度好大的,理論上8位的密碼組合有(26字母+10數字+21常用英文符號)的8次方種可能,以現在的比較好的機器機器要算上一年多。不過最近MD5聽說被破解了,能很快碰撞到密碼,不過破解機還沒有流傳出來,一般應用還是可以的,SHA1就相對要
安全一點。
散列加密,用函數表示是這樣的y=f(x),x是輸入的字符串,f是算法,y是加密后的密串,f是公開的,號稱唯一的x只對應唯一的y,x只有用戶知道,所以y是唯一的,現在破解的MD5就是發現了有幾個x可以對應y,而且從y可以很快地找到x。
加密技術流行的還有用于身份驗證的公鑰加密,有興趣的朋友可以參考相關的加密書籍。
C#中使用MD5非常簡單,使用下面的靜態方法:
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(temp_str, "MD5");
就可以得到加密后的字符串了,該靜態方法很簡單,temp_str就是你要加密的字符串變量,"MD5"表示使用MD5加密,如果用"SHA1",就是用SHA1加密了,夠easy吧,趕快把你的密碼驗證加密吧。
從上面我們可以體會到,C#真不愧是MicroSoft的鎮山之寶,提供的命名空間涵蓋了我們常用的方方面面,你還等什么,快來和我一起學C#吧。
前段時間一直在研究C#中WinForm的自定義控件的使用,現在已經可以自己寫自定義控件了,覺得它的代理機制和訂閱機制還是很不錯的,接下來就想把這部分的知識用在ASP.NET中,看看Web自定義控件的使用情況是如何的,如果你也想知道,請期待我的下一篇報告吧!
原文轉自:http://www.anti-gravitydesign.com