ToString(“X2”)是什么意思?

时间:2013-12-23 19:37:53

标签: c# encryption tostring

我正在学习MD5加密,并使用Google找到了这段代码:

    public string CalculateMD5Hash(string input)
    {

        // Primeiro passo, calcular o MD5 hash a partir da string
        MD5 md5 = System.Security.Cryptography.MD5.Create();
        byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
        byte[] hash = md5.ComputeHash(inputBytes);

        // Segundo passo, converter o array de bytes em uma string haxadecimal
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < hash.Length; i++)
        {
            sb.Append(hash[i].ToString("X2"));
        }
        return sb.ToString();
    }

为什么使用ToString("X2")?它与普通ToString有什么不同?

3 个答案:

答案 0 :(得分:75)

它将字符串格式化为两个大写十六进制字符。

更深入地说,参数"X2"是一个“格式字符串”,它告诉ToString()方法应该如何格式化字符串。在这种情况下,“X2”表示字符串应格式化为十六进制。

byte.ToString()没有任何参数以自然的十进制表示形式返回数字,没有填充。

Microsoft记录了standard numeric format strings,它通常适用于所有原始数字类型的ToString()方法。同样的模式也用于其他类型:例如,standard date/time format strings可以与DateTime.ToString()一起使用。

答案 1 :(得分:38)

以十六进制格式打印byte

  

无格式字符串:13

     

'X2'格式字符串:0D

http://msdn.microsoft.com/en-us/library/aa311428(v=vs.71).aspx

答案 2 :(得分:8)

ToString(“X2”)以十六进制

打印输入