C# MD加密 求32位加密方法

laowan688 2011-05-30 02:30:35
16位方法如下:

/// <summary>
/// 获得MD5的16进制结果
/// </summary>
public static string GetMD5(string encryptStr)
{
System.Security.Cryptography.MD5 md5 = new MD5CryptoServiceProvider();
byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(encryptStr));
string strResult = BitConverter.ToString(bytResult);
strResult = strResult.Replace("-", "");
return strResult;

}

网上查了下,乱糟糟的一堆,不要复制过来了。
有没有整合好的方法,直接调用就可以?通过40分送上,秒结贴。
...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
心灵彩虹 2011-05-30
  • 打赏
  • 举报
回复
public static string StringToMD5Hash(string inputString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] encryptedBytes = md5.ComputeHash(Encoding.ASCII.GetBytes(inputString));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < encryptedBytes.Length; i++)
{
sb.AppendFormat("{0:x2}", encryptedBytes[i]);
}
return sb.ToString();
}


using System.Security.Cryptography;
using System.Text;
laowan688 2011-05-30
  • 打赏
  • 举报
回复
木有高手啊
laowan688 2011-05-30
  • 打赏
  • 举报
回复
怪我没说清楚
winform 程序, 呵呵、
不是web程序。
心灵彩虹 2011-05-30
  • 打赏
  • 举报
回复
32位加密方法

/// <summary>
/// MD5加密 ---王雷 2007
///Email:xiaolei.org@gmail.com
/// </summary>
public class MD5
{
public MD5()
{ }


/// <summary>
/// 转换到MD5
/// </summary>
/// <param name="str">加密前字符串</param>
/// <param name="code">16位加密还是32位加密</param>
/// <returns>加密后字符串</returns>
public string to_md5(string str, int code)
{
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
}
if (code == 32) //32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
}
return "00000000000000000000000000000000";
}
}
}

心灵彩虹 2011-05-30
  • 打赏
  • 举报
回复
public static string GetMD5Hash(String input)
{
MD5 md5 = new MD5CryptoServiceProvider();

byte[] res = md5.ComputeHash(Encoding.Default.GetBytes(input), 0, input.Length);
char[] temp = new char[res.Length];

System.Array.Copy(res, temp, res.Length);

return new String(temp);
}

/// <summary>
/// 获得MD5的16进制结果
/// </summary>

public static string GetMD5HashHex(String input)
{
MD5 md5 = new MD5CryptoServiceProvider();
DES des = new DESCryptoServiceProvider();
byte[] res = md5.ComputeHash(Encoding.Default.GetBytes(input), 0, input.Length);

String returnThis = "";

for (int i = 0; i < res.Length; i++)
{
returnThis += System.Uri.HexEscape((char)res[i]);
}
returnThis = returnThis.Replace("%", "");
returnThis = returnThis.ToLower();

return returnThis;


}
laowan688 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vrhero 的回复:]
引用 1 楼 bios8086 的回复:
static void DecryptFile(string sInputFilename, string sOutputFilename)
{
byte[] s = { 115, 26, 53, 34, 75, 36, 88, 12 };
byte[] key = { 192, 23, 83, 41, 35, 64, 8……

别随便抄段3d……
[/Quote]
我的意思是32进制的。呵呵。能帮忙弄个正确的方法么?
天罡gg 2011-05-30
  • 打赏
  • 举报
回复
用这个吧,源码

/// <summary>
/// MD5 32位加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static string UserMd5(string str)
{
string cl = str;
string pwd = "";
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
byte[] s = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(cl));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
pwd = pwd + s[i].ToString("X");

}
return pwd;
}

vrhero 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bios8086 的回复:]
static void DecryptFile(string sInputFilename, string sOutputFilename)
{
byte[] s = { 115, 26, 53, 34, 75, 36, 88, 12 };
byte[] key = { 192, 23, 83, 41, 35, 64, 8……
[/Quote]
别随便抄段3des的来凑数...
vrhero 2011-05-30
  • 打赏
  • 举报
回复
MD5只有128位的...如果你是指32个字符,你找的这个就是...
bios8086 2011-05-30
  • 打赏
  • 举报
回复
static void DecryptFile(string sInputFilename, string sOutputFilename)
{
byte[] s = { 115, 26, 53, 34, 75, 36, 88, 12 };
byte[] key = { 192, 23, 83, 41, 35, 64, 89, 78, 41, 72, 63, 45, 95, 26, 8, 7, 138, 2, 13, 244, 105, 126, 158, 172 };
TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServiceProvider();
tDESalg.Key = key;
tDESalg.IV = s;
FileStream fsread = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);
ICryptoTransform desdecrypt = tDESalg.CreateDecryptor();
CryptoStream cryptostreamDecr = new CryptoStream(fsread, desdecrypt, CryptoStreamMode.Read);
XmlDocument doc = new XmlDocument();
XmlReader reader = XmlReader.Create(cryptostreamDecr);
doc.Load(reader);
}

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧