Bonjour,

J'ai codé la fonction ci-dessous qui me produit un hash SHA256 d'une chaine de caractères. Cependant je voudrais compléter cette fonction pour avoir comme résultat un nombre de 20 chiffres à partir du Hash.

Pour y arriver, je dois extraire les 64 bits ayant un poids fort et les convertir en numérique.

Comment puis-je procéder ? J'ai essayé plein de façon, lu plein de choses sur le net (conversion en binaire, tutoriel sur les bits ...) mais même avec tout ça je bloque. Pouvez-vous m'aider ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
private string calc_sha256(string graine)
{
SHA256 hash = SHA256.Create();
byte[] Tab = Encoding.UTF8.GetBytes(graine);
byte[] hashResult = hash.ComputeHash(Tab);
 
// conversion en numerique mais ne me donne pas ce que je veux
decimal decvalue = BitConverter.ToUInt64(hashResult,0);
 
// retourne le résultat sous forme de chaine
return (decvalue.ToString());
}
Merci.