Edit:
Voir Microsoft.Practices.EnterpriseLibrary.Security.Cryptography. HashAlgorithmProvider pour un exemple d'implémentation. Les étapes de hachage sont:
- Si SaltEnabled, générez des octets aléatoires pour la longueur de sel à l'aide de RNGCryptoServiceProvider.
- Ajouter le sel au texte en clair.
- Écrasez le texte en clair salé.
- Ensuite (c'est l'étape importante), ajoutez de nouveau le sel au .
Pour comparer contre le texte haché, vous devez utiliser:
public bool CompareHash(byte[] plaintext, byte[] hashedtext)
contre ressasser et de comparer. Si vous ressentez, un nouveau sel aléatoire est généré et vous êtes perdu.
CompareHash effectue les opérations suivantes:
- tire le sel non haché au large de la hashtext. Rappelez-vous, il a été ajouté à l'étape 4 ci-dessus.
- Utilise ce sel pour calculer un hachage pour le texte en clair.
- Compare le nouveau hachage avec le hashedtext moins le sel. Si elles sont identiques - vrai, sinon faux.
d'origine:.
« si le sel est activé sur un HashProvider, le fournisseur va générer une séquence aléatoire d'octets, qui sera ajouté à la table de hachage Si vous comparez une valeur de hachage avec une valeur non hachés, le sel sera extrait de la valeur hachée et utilisé pour hacher la valeur non hachée, avant la comparaison. "
et
« En ce qui concerne le décodage comme valeur de hachage. Ce ne peut pas être fait. Après la création d'une table de hachage il devrait y avoir aucun moyen d'inverser cela en la valeur d'origine. Cependant, ce que vous pouvez faire est de comparer un valeur non hachée avec une valeur hachée en la faisant passer par le même algorithme et en comparant la sortie. "
De http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=10284
« si le sel est activé sur un HashProvider, le fournisseur va générer une séquence aléatoire d'octets, qui sera ajoutée au hachage. " Mais alors cela ne fonctionnera pas parce que ce sel aléatoire doit être stocké, ou devrait être statique pour au moins chaque machine. –
Désolé pour la confusion. S'il vous plaît voir mon édition pour plus de détails qui, je pense, répondre à votre question. –