为什么md5 c#32位加密算法,密码明文会出现31位

publicstringreturnmima(stringstr){stringps="";MD5md5=MD5.Create();byte[]s=md5.Compute... public string returnmima(string str)
{
string ps = "";
MD5 md5 = MD5.Create();
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
for (int i = 0; i < s.Length; i++)
{
ps += s[i].ToString("x");
}
return ps;
}
这个是我的代码。
要加密的字段:1234abcd
结果为: ef73781effc577410f87fe2f437a435
但是真确应该为:ef73781effc5774100f87fe2f437a435
当中怎么多了个0,我怎么就少了个0????
请教达人

知道答案了。。。。
你们谁答,分数就给谁了
展开
 我来答
果建翼
推荐于2017-11-27 · TA获得超过7923个赞
知道大有可为答主
回答量:1684
采纳率:0%
帮助的人:2420万
展开全部
很常见的错误啊,你字节转换成字符串的时候要保证是2位宽度啊,某个字节为0转换成字符串的时候必须是00的,否则就会丢失位数啊。不仅是0,1~9也一样。

因此把那个ps += s[i].ToString("x");
改为ps += s[i].ToString("x2");

就ok了。
12917736427c66b6
推荐于2018-05-15 · TA获得超过4.1万个赞
知道大有可为答主
回答量:7541
采纳率:83%
帮助的人:619万
展开全部
很常见的错误啊,字节转换成字符串的时候要保证是2位宽度啊,某个字节为0转换成字符串的时候必须是00的,否则就会丢失位数啊。不仅是0,1~9也一样。

因此把那个ps += s[i].ToString("x");
改为ps += s[i].ToString("x2");
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenshuaiws
2009-02-28 · TA获得超过226个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:222万
展开全部
谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式