Всегда ли хеш hmac-sha1 длиной 20 байтов?Код Python - PullRequest
6 голосов
/ 30 июля 2011

Дайджест всегда 20 байтов?len (hashed.digest ()), кажется, всегда равно 20.

hashed = hmac.new(key, signature_base_string, sha)
print hashed.digest()
print len(hashed.digest())
i = 0
for c in hashed.digest():
    i = i + 1
    print ord(c)
print base64.b64encode(hashed.digest())

Ответы [ 3 ]

11 голосов
/ 30 июля 2011

Все функции хеширования имеют выходы фиксированной длины. SHA1 - 160 бит или 20 байтов.

1 голос
/ 30 июля 2011

SHA-1 всегда возвращает 160 бит или 20 байтов.

http://www.itl.nist.gov/fipspubs/fip180-1.htm

"Для сообщения длиной <2 ^ 64 бит SHA-1 создает 160-битное сжатое представление сообщения, называемое дайджестом сообщения." </p>

1 голос
/ 30 июля 2011

Да. Хэш SHA1 HMAC всегда составляет 160 бит (например, 20 байтов).

...