我正在学习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
有什么不同?
答案 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”)以十六进制
打印输入