ASP.NET with C#使用md5,sha1加密初探
來源:互聯網
上載者:User
asp.net|加密 /******雪龍原創*******/
//著作權,末經作者同意不得轉載
今天的實驗還是比較順利的,早上Regex用得很爽,晚上的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自訂控制項的使用方式是如何的,如果你也想知道,請期待我的下一篇報告吧!