Что означает ToString ( "X2" )?
Я изучаю шифрование 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 нормально?
Ответы
Ответ 1
Он форматирует строку как два строчных шестнадцатеричных символа в верхнем регистре.
Более подробно аргумент "X2"
представляет собой "строку формата", которая сообщает методу ToString()
, как он должен форматировать строку. byte.ToString()
без каких-либо аргументов возвращает число в его естественном десятичном представлении без дополнения.
Microsoft документирует стандартные строки числового формата, которые обычно работают со всеми методами примитивного числового типа ToString()
. Эта же модель используется и для других типов: например, стандартные строки формата даты/времени можно использовать с DateTime.ToString()
.
Ответ 2
Он печатает byte
в шестнадцатеричном формате.
Нет строки формата: 13
Строка формата 'X2': 0D
http://msdn.microsoft.com/en-us/library/aa311428(v=vs.71).aspx
Ответ 3
ToString ( "X2" ) печатает вход в шестнадцатеричном формате