Lai*_*290 76 c# encryption tostring
我正在研究加密MD5,我在谷歌找到了这个代码
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();
}
Run Code Online (Sandbox Code Playgroud)
但为什么它使用ToString("X2")?ToString正常有什么区别?
Typ*_*eIA 95
它将字符串格式化为两个大写十六进制字符.
更深入地说,参数"X2"是一个"格式字符串",它告诉ToString()方法应该如何格式化字符串.在这种情况下,"X2"表示字符串应格式化为十六进制.
byte.ToString() 没有任何参数返回其自然十进制表示中的数字,没有填充.
Microsoft记录标准数字格式字符串,它通常适用于所有原始数字类型的ToString()方法.同样的模式也用于其他类型:例如,可以使用标准日期/时间格式字符串DateTime.ToString().
Dav*_*ych 44
它byte以十六进制格式打印.
没有格式字符串:13
'X2'格式字符串:0D
http://msdn.microsoft.com/en-us/library/aa311428(v=vs.71).aspx