方法1: 使用System.Textのを。 使用してSystem.Security.Cryptographyを。 パブリック 文字列ハッシュ(列toHash) { MD5CryptoServiceProvider暗号 = 新しいMD5CryptoServiceProvider()。 バイト []バイト= Encoding.UTF7.GetBytes(toHash)。 バイト = crypto.ComputeHash(バイト)。 StringBuilderのSB = 新しいStringBuilderの(); foreachの(バイト NUM におけるバイト) { sb.AppendFormat(" {0:X2} " 、NUM)。 } を返す)(sb.ToStringします。 // 32位 リターン。sb.ToString()サブストリング(8、16)。 // 16位 } 方法2: 16位 パブリック ストリング GetMd5(文字列strの) { System.Security.Cryptography.MD5CryptoServiceProvider MD5 = 新しいMD5CryptoServiceProvider()。 文字列 A = BitConverter.ToString(md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(STR))、4、8); = a.Replace(" - "、"" ); 返します。 } 32位 公衆 ストリング GetMd5(文字列strの) { System.Security.Cryptography.MD5CryptoServiceProvider MD5 = 新しいMD5CryptoServiceProvider()。 文字列 A = BitConverter.ToString(md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(STR)))。= a.Replace(" - "、"" ); 返します。 }
Winフォーム: パブリック 静的 文字列 StringToMD5Hash(列inputStringから) { MD5CryptoServiceProvider MD5 = 新しいMD5CryptoServiceProvider()。 バイト [] encryptedBytes = md5.ComputeHash(Encoding.ASCII.GetBytes(inputStringから))。 StringBuilderのSB = 新しいStringBuilderの(); 以下のために(int型 iは= 0 ; I <encryptedBytes.Length I ++ ) { sb.AppendFormat(" :X2} {0 "、encryptedBytes [I])。 } を返すsb.ToString(); } ウェブフォーム: パブリック 静的 文字列 MD5(列PWD) { ストリング md5pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(PWD、" MD5 " )。 リターンmd5pwd。 }
/ * * *認証パスワードが正しいか
* MD5ない復号化、認証文字列を暗号化する前に、文字列と等しくない、唯一の暗号文を比較し、同じ暗号化文字列を使用することができます * @paramパスワード暗号化されたパスワード * @param inputStringから入力された文字列 * @return検証結果、TRUE:右FALSE:エラー * / パブリック 静的ブールvalidatePassword(文字列のパスワード、文字列inputStringから)
{ IF (password.equals(encodeByMD5(inputStringから)))
{ リターン trueに; }
他
{ リターン falseに; } }