Bonjour,
JE souhaite faire un Hash WHIRLPOOL en c#, est il possible, j'ai vu qu'on peut faire ce hashage en Java, est il le cas en C# ? merci d'avance.
Version imprimable
Bonjour,
JE souhaite faire un Hash WHIRLPOOL en c#, est il possible, j'ai vu qu'on peut faire ce hashage en Java, est il le cas en C# ? merci d'avance.
Bien sûr que c'est possible... par contre je ne pense pas que ce soit implémenté en standard dans le .NET Framework. Donc il faut soit l'implémenter toi-même (probablement pas très facile), soit utiliser une bibliothèque de cryptographie (BouncyCastle gère cet algorithme par exemple)
EDIT: il y a une implémentation en C# ici :
https://code.google.com/p/csharptest...poolManaged.cs
Ca hérite de la classe HashAlgorithm du framework, donc a priori ça doit s'utiliser comme les autres (SHA1, MD5 etc). Un truc comme ça :
Code:
1
2
3 byte[] data = ... var hashAlgorithm = new WhirlpoolManaged(); byte[] hash = hashAlgorithm.ComputeHash(data);
j'ai essayé ça :
je voudrai encoder un fichier .txt, comment peut on le faire ? merci infinimentCode:
1
2
3
4
5
6
7
8 Org.BouncyCastle.Crypto.ICipherParameters p = new Org.BouncyCastle.Crypto.Parameters.KeyParameter(BitConverter.GetBytes(222222222222)); Org.BouncyCastle.Crypto.Digests.WhirlpoolDigest dd = new Org.BouncyCastle.Crypto.Digests.WhirlpoolDigest(); Org.BouncyCastle.Crypto.Macs.HMac hh = new Org.BouncyCastle.Crypto.Macs.HMac(dd); hh.Init(p); byte[] result = new byte[hh.GetMacSize()]; hh.DoFinal(result, 0);
Pour BouncyCastle, je sais pas comment ça s'utilise... Le code que je t'ai montré utilise la classe WhirlpoolManaged de l'autre lien que je t'ai donné
Tu peux récupérer les données binaires du fichier avec File.ReadAllBytes. Ensuite tu passes simplement le tableau d'octets obtenu en paramètre de l'algo de hachage
Bonjour,
J'ai mis comme suite :
j'ai l'erreur suivante :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 using System.Security.Cryptography public string WhirlpoolHash(string str) { byte[] sourceBytes = Encoding.Default.GetBytes(str); byte[] hashBytes = null; WhirlpoolManaged wp = new WhirlpoolManaged(); hashBytes = wp.ComputeHash(sourceBytes); StringBuilder sb = new StringBuilder(); for (int i = 0; hashBytes != null && i < hashBytes.Length; i++) { sb.AppendFormat("{0:x2}", hashBytes[i]); } return sb.ToString(); }
Merci d'avance de votre aide.Citation:
Erreur 14 Le type ou le nom d'espace de noms 'WhirlpoolManaged' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
Bah tu as pas inclus cette classe dans ton projet ?