C# ToString(“X2”)的含义是什么?

C# ToString(“X2”)的含义是什么?,c#,encryption,tostring,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.Get

我正在研究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();
}
公共字符串计算emd5hash(字符串输入)
{
//Primeiro passo,calcular o MD5散列一个partir da字符串
MD5 MD5=System.Security.Cryptography.MD5.Create();
byte[]inputBytes=System.Text.Encoding.ASCII.GetBytes(输入);
byte[]hash=md5.ComputeHash(inputBytes);
//Segundo passo,转换器o数组de字节em uma字符串haxadecimal
StringBuilder sb=新的StringBuilder();
for(int i=0;i

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

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

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

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


Microsoft文档通常用于所有基本数字类型“
ToString()
方法”。同样的模式也用于其他类型:例如,可以与
DateTime.ToString()
一起使用,它以十六进制格式打印
字节

无格式字符串:13

“X2”格式字符串:0D


ToString(“X2”)以十六进制打印输入

我尝试过,我看到了视觉上的差异,但我不知道它在这里做了什么相同的事情。只需在google上键入tostring格式,然后导航到第一个结果。不要抱歉!我们都是来学习的。@L.B供参考,关于StackOverflow的许多“简单”问题,这是谷歌在一些搜索中的第一个结果。我认为出于这个原因,这类问题总是有价值的。如果有人读过干净的代码并且正在思考。。。“我们能在框架中得到这个名为ToHexString()的文件吗”。。。我们都可以停止编写自己的扩展函数了吗?对于我们中的一些人来说,X2不仅仅是大脑的滚动。可能是格式字符串“2HX”,但这只是为了可爱。格式至少为两个大写十六进制字符。如果有两个以上,它将返回所有。所以F将返回为0F,但FFF将返回为FFF。