日期:2014-05-20  浏览次数:21088 次

为什么我用md5加密出来的结果字符串是31位的呢?
public   static   string   MD5Encrypt(string   str)
{
MD5   md5   =   new   MD5CryptoServiceProvider();
byte[]   bstr   =   System.Text.Encoding.UTF8.GetBytes(str);
byte[]   reb;
reb=md5.ComputeHash(bstr);
string   restr= " ";
Console.WriteLine(reb.Length);
for(int   i=0;i <reb.Length;i++)
{
restr+=reb[i].ToString( "X ");
}
return   restr;
}

md5加密以后出来的结果不是应该是32么?为什么我这儿出来的结果是31位的呢?

------解决方案--------------------
按照你的代码 reb里面应该是128位的16进制数据
不知道你转成字符串的时候会不会有问题
标准的format 是X2 或者x2 ,你的是X