C#中的MD5类的一个问题

C#中的MD5类的一个问题C#里MD5加密的结果是一个byte[]长度为16在网上找的MD5加密结果貌似都是32位和16位的字符串请问那个byte[]如何转成网上那些32... C#中的MD5类的一个问题

C#里MD5加密的结果是一个 byte[] 长度为16

在网上找的MD5加密结果 貌似都是32位和16位的字符串

请问那个 byte[] 如何转成网上那些32位和16位的字符串?
展开
 我来答
syht2000
高粉答主

推荐于2016-10-22 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部

32位的md5去掉前后各8个字符,也就是取出8到24位的字符就是16位的md5了,代码如下

public static string md5(string text,Boolean is16bit=false)
        {
            string enc = BitConverter.ToString((new MD5CryptoServiceProvider()).ComputeHash(Encoding.Default.GetBytes(text))).Replace("-", "");
            if (is16bit) return enc.Substring(8,16);
            else return enc;
        }
        static void Main(string[] args)
        {
            Console.WriteLine(md5("Hello World!"));//32位md5
            Console.WriteLine(md5("Hello World!",true));//16位md5
            Console.ReadKey();
        }
OAngs
2013-06-08 · TA获得超过678个赞
知道小有建树答主
回答量:554
采纳率:66%
帮助的人:364万
展开全部
byte[] ArrOut=**************************;
string str = BitConverter.ToString(ArrOut).Replace("-", "");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
空雪梦见
2013-06-08 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1213万
展开全部
一个byte变量的值范围是0~255,转成16进制就是00~ff,两个字符。
16个byte转成16进制,得到32个字符
追问
那MD5的16位字符串是怎么来的?
追答
md5出来的不是128bit的结果吗,8bit是一个字节于是128/8=16个字节,

16个字符的没见过……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式