7
votes

C # générer un hachage de MD5 aléatoire

Comment générer une valeur de hachage MD5 aléatoire en C #?


5 commentaires

Créez une chaîne aléatoire - et générer MD5 pour cela. Mais pourquoi voulez-vous quelque chose comme ça? Si vous voulez un identifiant unique, utilisez simplement guid


Comment créer une chaîne aléatoire?


Pourquoi quelqu'un voudrait-il créer un hachage de MD5 aléatoire? Toute chaîne de 128 longueur peut être un hachage de MD5 aléatoire (au moins je suppose).


@SUDANTANTHA - Voir cette réponse Stackoverflow.com/questions/ 1122483 / C-String-String-Generato R / ...


@ Int3: Non, ce n'est pas correct. Les hachages MD5 contiennent uniquement des chiffres et des caractères A, B, C, D, E et F (hexadécimal).


3 Réponses :


19
votes

Vous pouvez créer une chaîne aléatoire à l'aide de guid.newguid () et générer sa checksum MD5.


2 commentaires

Bien que GUID soit une valeur aléatoire de 128 bits, 6 bits sont prédéfinis. Donc, même après hachage, vous n'aurez que 2 ^ 122 différentes valeurs de hachage. Utilisation de RngCryptoServiceProvider, vous aurez toutes les 2 ^ 128 valeurs. En fait, GUID utilise également RngCryptoServiceProvider.


J'ai peur guid.newguid () n'est pas aléatoire.



25
votes

Une valeur de hachage de MD5 aléatoire est efficacement juste un nombre aléatoire de crypto-résistance de 128 bits.

var bytes = new byte[16];
using (var rng = new RNGCryptoServiceProvider())
{
    rng.GetBytes(bytes);
}

// and if you need it as a string...
string hash1 = BitConverter.ToString(bytes);

// or maybe...
string hash2 = BitConverter.ToString(bytes).Replace("-", "").ToLower();


0 commentaires

3
votes
using System.Text;
using System.Security.Cryptography;

  public static string ConvertStringtoMD5(string strword)
{
    MD5 md5 = MD5.Create();
    byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strword);
    byte[] hash = md5.ComputeHash(inputBytes);
    StringBuilder sb = new StringBuilder();
        for (int i = 0; i < hash.Length; i++)
       { 
            sb.Append(hash[i].ToString("x2"));
       }
       return sb.ToString();
}

0 commentaires