Я искал вокруг и не мог найти ответ на этот вопрос.Я заметил, что могу генерировать дайджесты сообщений, используя, скажем, алгоритм blake2b
, используя библиотеку hashlib
или библиотеку hmac
, которая использует digestmod
, обозначенный hashlib
.Итак:
plainMsg = "this is a plaintext message"
hashlib_hashed = hashlib.blake2b(key=b'super secret key')
hashlib_hashed.update(plainMsg.encode())
hmac_hashed = hmac.new(b'super secret key', digestmod=hashlib.blake2b)
hmac_hashed.update(plainMsg.encode())
print(hashlib_hashed.hexdigest())
print(hmac_hashed.hexdigest())
На мой взгляд, они должны генерировать те же дайджесты сообщений, что и я, используя тот же алгоритм, тот же ключ и тот же открытый текст.Но они генерируют два разных дайджеста:
ec0d0ab13d7e7f3b62d742aa92078a4a14346ee6ee352e27c8814e4bf6361556fdc3d301e100b5a2c90c5596c4b2bb72c887c6b6aa92fb41752f6b52105ce13b
b632045e745550e5b9da6d411c013c978cb8120847260eb8fda9c8885368a5eaba80cd74ad95a51b1a4bde1f47cccb5a2e4591e9935126f673479c7474c2be97
Я изначально думал, что это связано с солью, так как я не использовал один с hashlib.blake2b()
, поэтому я думаю, что он пуст, поскольку salt=b''
,Но с помощью hmac
я не нашел, как настроить соль.Итак, кто-нибудь может объяснить?