私は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
とどう違うのですか?
文字列を2つの大文字の16進文字としてフォーマットします。
より詳細には、引数"X2"
はToString()
メソッドに文字列のフォーマット方法を伝える「フォーマット文字列」です。この場合、「X2」は文字列を16進数でフォーマットする必要があることを示します。
引数なしのbyte.ToString()
は、パディングなしの自然な10進表現で数値を返します。
Microsoftは 標準の数値書式文字列 を文書化します。これは一般にすべてのプリミティブ数値型のToString()
メソッドで機能します。これと同じパターンが他のタイプにも使用されます。たとえば、 標準の日付/時刻形式文字列 はDateTime.ToString()
で使用できます。
byte
を16進形式で出力します。
フォーマット文字列なし:13
「X2」フォーマット文字列:0D
http://msdn.Microsoft.com/en-us/library/aa311428(v = vs.71).aspx
ToString( "X2")は入力を16進数で出力します