Documente Academic
Documente Profesional
Documente Cultură
grupa 334
1
2. HMAC.block_size: Dimensiunea blocului intern folosit pentru algoritm in
bytes
3. HMAC.name: Numele canonic pentru HMAC, in ffunctie de algoritmul
implementat, de exmplu "hmac-sha1".
import hmac
digest_maker = hmac.new('secret-shared-key-goes-here')
f = open('lorem.txt', 'rb')
try:
while True:
block = f.read(1024)
if not block:
break
digest_maker.update(block)
finally:
f.close()
digest = digest_maker.hexdigest()
print digest
Chiar daca, by default, HMAC foloseste MD5, nu este cel mai sigur algoritm
deoarece problema majora cu aceste hashuri este legata de coliziuni (adica 2
mesaje diferie pot produce acelasi hash). S-a demonstrat faptul ca SHA-1 este mai
puternic si ar trebui folosit in loc de cel default. O implementare posibila pentru
SHA-1 este:
import hmac
import hashlib
try:
while True:
block = f.read(1024)
if not block:
break
digest_maker.update(block)
finally:
f.close()
digest = digest_maker.hexdigest()
print digest
2
69b26d1731a0a5f0fc7a92fc6c540823ec210759
O alta aplicatie a acestui modul este verificarea traficului VPN. Rolul principal
este de a verifica daca mesajele sunt transmise sigur, fara a fi alterate, intre
dispozitive si serverele VPN. Un obiect HMAC este o forma de semnatura digitala,
care se bazeaza pe cheia secreta integreata in mesajul dintre sender si receipient,
oricare ar fi acestia.
Authorization: http://www.worldcat.org/wskey/v2/hmac/v1
clientId="tsFsoBXToV1uR8GEMJCcxz9NYpVvutsA5cJAD9cnKUc4FGYEntM
6UkcIVlYp4ZhYFteVLAxOWJDUV85W",
timestamp="1361306811",
nonce="762343395744465450467911322335",
signature="2DwPAIYqlCOH9xCHM7PSnOBoVKk/PHrHPeIGmmEK/AI=",
principalID="8eaa9f92-3951-431c-975a-d7dfkd9rd131",
principalIDNS="urn:oclc:wms:da"
BILBIOGRAFIE:
1. https://pymotw.com/2/hmac/
2. https://pymotw.com/3/hmac/
3. https://bip.weizmann.ac.il/course/python/PyMOTW/PyMOTW/docs/hmac/inde
x.html
4. https://docs.python.org/3/library/hmac.html
5. https://protonvpn.com/blog/hmac-authentication/
3
4