J'étudie le cryptage MD5 et j'ai trouvé ce code avec 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();
}
Pourquoi utilise-t-il ToString("X2")
? En quoi est-il différent de la normale ToString
?
Il formate la chaîne en deux caractères hexadécimaux majuscules.
De manière plus approfondie, l'argument "X2"
Est une "chaîne de formatage" qui indique à la méthode ToString()
comment formater la chaîne. Dans ce cas, "X2" indique que la chaîne doit être formatée en hexadécimal.
byte.ToString()
sans aucun argument renvoie le nombre dans sa représentation décimale naturelle, sans remplissage.
Microsoft documente les chaînes de format numérique standard qui fonctionnent généralement avec toutes les méthodes ToString()
de types numériques primitives. Ce même modèle est également utilisé pour d'autres types: par exemple, chaînes de format de date/heure standard peut être utilisé avec DateTime.ToString()
.
Il imprime le byte
au format hexadécimal.
Aucune chaîne de format: 13
Chaîne de format 'X2': 0D
http://msdn.Microsoft.com/en-us/library/aa311428 (v = vs.71) .aspx
ToString ("X2") imprime l’entrée en hexadécimal