古詩詞大全網 - 四字成語 - ASP.NET中幾種加密方法

ASP.NET中幾種加密方法

 MD 的全稱是Message Digest Algorithm (信息 摘要算法) 在 年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l rivest開發出來 經md md 和md 發展而來 它的作用是讓大容量信息在用數字簽名軟件簽署私人密匙前被"壓縮"成壹種保密的格式(就是把壹 個任意長度的字節串變換成壹定長的大整數) 不管是md md 還是md 它們都需要獲得壹個隨機長度的信息並產生壹個 位的信息摘要

 加密哈希函數將任意長度的二進制字符串映射為固定長度的小型二進制字符串 加密哈希函數有這樣壹個屬性 在計算上不大可能找到散列為相同的值的兩個 不同的輸入 也就是說 兩組數據的哈希值僅在對應的數據也匹配時才會匹配 數據的少量更改會在哈希值中產生不可預知的大量更改 所以妳很難從加密後的文字 中找到蛛絲馬跡

 SHA 的全稱是Secure Hash Algorithm(安全哈希算法)

 MD 算法的哈希值大小為 位 而SHA 算法的哈希值大小為 位 兩種算法都是不可逆

 雖說 年 月 日的美國加州聖巴巴拉的國際密碼學會議(Crypto’ )上 來自中國山東大學的王小雲教授做了破譯MD HAVAL MD 和RIPEMD算法的報告 公布了MD系列算法的破解結果 宣告了固若金湯的世界通行密碼標準MD5的堡壘轟然倒塌 引發了密碼學界的軒然 *** 但 是我覺得對於我們做普通的軟件來說 這個加密安全程度已經足夠使用了

 我們平常用的最多的無非就是加密用戶密碼 把加密好的密碼存儲到數據庫中 進行密碼比較的時候 把用戶輸入的密碼再進行加密 然後與數據庫中的密文 進行比較 至於ASP net類中是如何實現加密算法的 這個我們不需要關心 會用就行了

 下面就是ASP NET中幾種加密方法 加密算法有兩種 也就是上面提到的MD 和SHA 這裏我舉的例子是以MD 為例 SHA 大致相同 只 是使用的類不壹樣

 MD 相關類

System Security Cryptography MD System Security Cryptography MD CryptoServiceProvider() System Web Security FormsAuthentication HashPasswordForStoringInConfigFile(strSource "MD ")

 SHA 相關類

System Security Cryptography SHA System Security Cryptography SHA CryptoServiceProvider() System Web Security FormsAuthentication HashPasswordForStoringInConfigFile(strSource "SHA ")

 方法如下 (用的vs )

/**//// <summary> /// 方法壹:通過使用 new 運算符創建對象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果 該結果取 位加密結果的第 位到 位</returns> public string Get_MD _Method (string strSource) {//newSystem Security Cryptography MD md = new System Security Cryptography MD CryptoServiceProvider();//獲取密文字節數組byte[] bytResult = md ComputeHash(System Text Encoding Default GetBytes(strSource));//轉換成字符串 並取 到 位string strResult = BitConverter ToString(bytResult );//轉換成字符串 位//string strResult = BitConverter ToString(bytResult);//BitConverter轉換出來的字符串會在每個字符中間產生壹個分隔符 需要去除掉strResult = strResult Replace(" " "");return strResult; } /**//// <summary> /// 方法二:通過調用特定加密算法的抽象類上的 Create 方法 創建實現特定加密算法的對象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果</returns> public string Get_MD _Method (string strSource) {string strResult = "";//CreateSystem Security Cryptography MD md = System Security Cryptography MD Create();//註意編碼UTF UTF Unicode等的選擇byte[] bytResult = md ComputeHash(System Text Encoding UTF GetBytes(strSource)); //字節類型的數組轉換為字符串for (int i = ; i < bytResult Length; i++){ // 進制轉換 strResult = strResult + bytResult[i] ToString("X");}return strResult; } /**//// <summary> /// 方法三:直接使用HashPasswordForStoringInConfigFile生成 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果</returns> public string Get_MD _Method (string strSource) {return System Web Security FormsAuthentication HashPasswordForStoringInConfigFile(strSource "MD "); } lishixinzhi/Article/program/net/201311/14023