wie der Titel schon sagt, versuche ich den hmac selbst zu basteln, ist ne Praxisaufgabe der uni, leider stelle ich mich gerade selten dämlich an, ich bin in python noch nicht sehr geübt und stehe daher "gelegentlich" fröhlich im Wald und weiß nicht was fehlt auch wenn es selbst für Anfänger offensichtlich sein sollte...
das große Problem ist das ich eigentlich nur die Erinnerung an die erklärung des Profs habe und eine Mathematische Formel MAC(text)t = HMAC(K, text)t = H((K0 ¯ opad )|| H((K0 ¯ ipad) || text))t wunderschönes Teil^^
Ich hab einfach versucht das Ding nach zu bauen stellte aber schnell fest das das natürlich nicht so einfach wird wie ich gehofft hatte.
Eigentlich scheint das ganze Konstrukt ja ganz einfach zu sein, nur der erste Teil mit dem k0 XOR opad, gibt mir in meinem versuch , ich verstehe auch wieso, einen bool wert aus. Da sollte er aber eigentlich was vergleichen... lange rede garkein Sinn, hat jemand ne Ahnung wie man das lösen kann?
Code: Alles auswählen
import hashlib
m = b"1"
k = b"a28d1be25564a48db89d3b2a708f65d8efb33650"
#b = 64
opad = 64*0x5c
ipad = 64*0x36
k0_ipad = k != ipad
k0 = k0_ipad + m
k0_sha1 = k0.encode('utf-8')
sha_1 = hashlib.sha1()
sha_1.update(k0_sha1)
k0_sha1 = sha_1.hexdigest()
k0_opad = (k != opad)
myhash = k0_sha1 + k0_opad
myhash_sha1 = myhash.encode('utf-8')
sha_1 = hashlib.sha1()
sha_1.update(myhash_sha1)
myhash_sha1 = sha_1.hexdigest()
MAC = myhash_sha1[0:6]
print (MAC)