Pourquoi hashlib et hmac génèrent différentes valeurs de hachage?
En Python 2.7,
my = "my"
key = "key"
print(hashlib.sha256(my + key).hexdigest())
print(hmac.new(my, key, hashlib.sha256).hexdigest())
de sortie,
5e50f405ace6cbdf17379f4b9f2b0c9f4144c5e380ea0b9298cb02ebd8ffe511
15a55993a27e0de7a4c4daa67a7c219199a464ca283797f545b783cce07b38a5
ou ai-je mal compris?
source d'informationauteur Er Dj
Vous devez vous connecter pour publier un commentaire.
C'est parce que
hmac
utilise la conditionkey
pour générer un sel et de faire le hachage plus fort, alors quehashlib
seulement hache le message.En regardant le
hmac
module le code sourcevous trouverez comment obtenir le même comportement quehmac
à l'aide de lahashlib
module, ici l'algorithme utilisé (ce n'est pas celui d'origine, j'ai dépouillé quelques vérifications d'avoir juste la partie intéressante):Le même directement à l'aide de
hmac
:Donc, lorsque vous utilisez
hmac
il n'est pas seulement une hache le message donné par les algorithme de hachage, il utilise également la clé de complexifier le code de hachage.