C#的MD5加密解密的通用操作类
2011-01-18 15:35
375 查看
using System.Security.Cryptography;
namespace ...
{
/// <summary>
/// MD5加密解密的通用操作类
/// 说明:java加密后的密码,与此处的对比相同。
/// </summary>
public static class MD5Common
{
/// <summary>
/// 返回指定字符串的Md5
/// </summary>
/// <param name="strInput">指定字符串</param>
/// <returns>返回字符串的Md5</returns>
public static string GetMd5Hash(string strInput)
{
// Create a new instance of the MD5CryptoServiceProvider object.
MD5 md5Hasher = MD5.Create();
// Convert the input string to a byte array and compute the hash.
byte[] btData = md5Hasher.ComputeHash(Encoding.Default.GetBytes(strInput));
// Create a new Stringbuilder to collect the bytes
// and create a string.
StringBuilder sBuilder = new StringBuilder();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (int i = 0; i < btData.Length; i++)
{
sBuilder.Append(btData[i].ToString("x2"));
}
// Return the hexadecimal string.
return sBuilder.ToString();
}
/// <summary>
/// 检查一个普通字符串的Md5,与传递的Md5字符串是否相同
/// </summary>
/// <param name="strInput">普通字符串</param>
/// <param name="strHash">Md5字符串</param>
/// <returns>返回是否相同</returns>
public static bool VerifyMd5Hash(string strInput, string strHash)
{
// Hash the input.
string strhashOfInput = GetMd5Hash(strInput);
// Create a StringComparer an comare the hashes.
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(strhashOfInput, strHash))
{
return true;
}
else
{
return false;
}
}
}
}
namespace ...
{
/// <summary>
/// MD5加密解密的通用操作类
/// 说明:java加密后的密码,与此处的对比相同。
/// </summary>
public static class MD5Common
{
/// <summary>
/// 返回指定字符串的Md5
/// </summary>
/// <param name="strInput">指定字符串</param>
/// <returns>返回字符串的Md5</returns>
public static string GetMd5Hash(string strInput)
{
// Create a new instance of the MD5CryptoServiceProvider object.
MD5 md5Hasher = MD5.Create();
// Convert the input string to a byte array and compute the hash.
byte[] btData = md5Hasher.ComputeHash(Encoding.Default.GetBytes(strInput));
// Create a new Stringbuilder to collect the bytes
// and create a string.
StringBuilder sBuilder = new StringBuilder();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (int i = 0; i < btData.Length; i++)
{
sBuilder.Append(btData[i].ToString("x2"));
}
// Return the hexadecimal string.
return sBuilder.ToString();
}
/// <summary>
/// 检查一个普通字符串的Md5,与传递的Md5字符串是否相同
/// </summary>
/// <param name="strInput">普通字符串</param>
/// <param name="strHash">Md5字符串</param>
/// <returns>返回是否相同</returns>
public static bool VerifyMd5Hash(string strInput, string strHash)
{
// Hash the input.
string strhashOfInput = GetMd5Hash(strInput);
// Create a StringComparer an comare the hashes.
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(strhashOfInput, strHash))
{
return true;
}
else
{
return false;
}
}
}
}
相关文章推荐
- C#/IOS/Android通用加密解密方法
- C# MD5加密与解密
- C#通用的数据操作类
- C# wpf 实现 MD5加密解密 小工具
- C#对用户密码使用MD5加密与解密
- 通用数据库操作类c#(转贴)
- ASP.NET C# MD5加密 解密
- C# 调用http和https请求rest接口通用操作类
- c#.net ,md5加密解密代码
- C#MD5加密解密【转载】
- C#通用JSON操作类
- C# MD5加密解密帮助类
- C#通用数据操作类
- C#通用类库--短信猫操作类1(原始AT命令)
- C#/IOS/Android通用加密解密方法
- 转:C#通用类库--短信猫操作类1(原始AT命令)
- Asp.Net C#中除了MD5加密之外还经常用到了AES加密、解密与DES加密、解密,本次先介绍DES的加密及解密。注意的是DES的密匙是8位的。
- 转:C#通用类库--短信猫操作类2使用方法(原始AT命令)
- PHP与C#通用 DES 加解密
- java 和 C# 通用加密解密