C#中的MD5类的一个问题

2025-05-13 12:38:09
推荐回答(3个)
回答(1):

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();
        }

回答(2):

byte[] ArrOut=**************************;
string str = BitConverter.ToString(ArrOut).Replace("-", "");

回答(3):

一个byte变量的值范围是0~255,转成16进制就是00~ff,两个字符。
16个byte转成16进制,得到32个字符