OVH Cloud OVH Cloud

Comportement étrange de SHA512Managed

2 réponses
Avatar
Vincent
Bonjour,

J'utilise l'objet SHA512Managed pour crée une clé à partir d'un fichier
texte. Voici mon code (s contient mon fichier texte):

SHA512Managed sha512 = new SHA512Managed( );

byte[] dataBytes = Encoding.UTF8.GetBytes(s);

sha512.ComputeHash( dataBytes );

string keyHash = Convert.ToBase64String(sha512.Hash, 0, sha512.Hash.Length);



Lorsque je lance plusieurs fois consécutivement le programme, j'ai bien la
même valeur pour keyHash. Par contre si je recompile mon application, j'ai
une valeur différente de keyHash au prochain lancement. C'est assez génant
car la valeur donnée n'est pas la même dans deux applications différentes.
Est-ce normal, ou est-il possible de paramétrer l'objet SHA512Managed pour
que cela fonctionne?



Merci d'avance



Vincent

2 réponses

Avatar
Zazar
Bonjour,

J'utilise l'objet SHA512Managed pour crée une clé à partir d'un fichier
texte. Voici mon code (s contient mon fichier texte):

SHA512Managed sha512 = new SHA512Managed( );

byte[] dataBytes = Encoding.UTF8.GetBytes(s);

sha512.ComputeHash( dataBytes );

string keyHash = Convert.ToBase64String(sha512.Hash, 0, sha512.Hash.L ength);



Lorsque je lance plusieurs fois consécutivement le programme, j'ai bi en la
même valeur pour keyHash. Par contre si je recompile mon application, j'ai
une valeur différente de keyHash au prochain lancement. C'est assez g énant
car la valeur donnée n'est pas la même dans deux applications diffé rentes.
Est-ce normal, ou est-il possible de paramétrer l'objet SHA512Managed pour
que cela fonctionne?



Je doute qu'il y ait un problème aussi grossier dans la classe SHA512.
Vérifiez plutôt du coté de votre fichier et de vos actions de
génération. Quelque chose doit faire que le fichier n'est pas identiq ue
lors de los tests.

--
Zazar
Avatar
Antonio Palermo
Zazar ha scritto:
Bonjour,

J'utilise l'objet SHA512Managed pour crée une clé à partir d'un
fichier texte. Voici mon code (s contient mon fichier texte):

SHA512Managed sha512 = new SHA512Managed( );

byte[] dataBytes = Encoding.UTF8.GetBytes(s);

sha512.ComputeHash( dataBytes );

string keyHash = Convert.ToBase64String(sha512.Hash, 0,
sha512.Hash.Length);



Lorsque je lance plusieurs fois consécutivement le programme, j'ai
bien la même valeur pour keyHash. Par contre si je recompile mon
application, j'ai une valeur différente de keyHash au prochain
lancement. C'est assez génant car la valeur donnée n'est pas la même
dans deux applications différentes. Est-ce normal, ou est-il possible
de paramétrer l'objet SHA512Managed pour que cela fonctionne?




Je doute qu'il y ait un problème aussi grossier dans la classe SHA512.
Vérifiez plutôt du coté de votre fichier et de vos actions de
génération. Quelque chose doit faire que le fichier n'est pas identique
lors de los tests.

--
Zazar


tu pourrais faire ainsi:

SHA512 sha512 = new SHA512Managed();

byte[] dataBytes = Encoding.UTF8.GetBytes(s);

byte[] result;

result = sha512.CoputeHash( dataBytes );

string keyHash;

for( int i=0; i<result.Lenght; i++ )

keyHash=result[i].ToString("X");





il devrait fonctionner, j'ai fait ainsi



excuses moi pour mon laid français, je suis italien