Page 1 sur 1

Procedure HMAC SHA-1

Publié : jeu. 09/mai/2013 10:37
par caussatjerome
Bonjours à tous !
je poste le code d'une procedure de calcul d'empreinte "Keyed Secure Hash Algorithme 1" (HMAC-SHA1)", sa peut toujours servir :)

Code : Tout sélectionner

Procedure.s hextoasc(entrer.s)
For a = 1 To Len(entrer.s) Step 2
sortie.s+Chr(Val("$"+Mid(entrer.s,a,2)))
Next a
ProcedureReturn sortie.s
EndProcedure

Procedure.s hmac_sha1(key.s,msg.s)
If(Len(key.s)>64); Si key est plus grand que 64 octets...
key.s=SHA1Fingerprint(@key.s,Len(key.s))
key.s=hextoasc(key.s)
EndIf
key.s=LSet(key.s,64,Chr(0));Il faut que la clef soit de 64 octets, on ajoute donc autant de fois que necessaire le caractères ASCII 0.
ipad.s=LSet(ipad.s,64,Chr($36));On prépare la variable ipad (64 fois le caractère $36)
opad.s=LSet(opad.s,64,Chr($5c));On prépare la variable opad (64 fois le caractère $5c)
For a=1 To 64
opadt.s+Chr(Asc(Mid(opad,a,1))!Asc(Mid(key,a,1))); on prépare la variable opadt (opad XOR key)
ipadt.s+Chr(Asc(Mid(ipad,a,1))!Asc(Mid(key,a,1))); on prépare la variable ipadt (ipad XOR key)
Next a
ipadt.s+msg.s;on ajoute le message a ipad.
hipad.s=SHA1Fingerprint(@ipadt.s,Len(ipadt.s))
opadt.s+hextoasc(hipad.s)
hopad.s=SHA1Fingerprint(@opadt.s,Len(opadt.s))
ProcedureReturn hopad.s
EndProcedure

key$=InputRequester("Programme de test HMAC SHA1 :","KEY :","")
Message$=InputRequester("Programme de test HMAC SHA1 :","Message :","")
hmac.s=hmac_sha1(key$,message$)
MessageRequester("Resultat :",hmac.s)
End
Code Fonctionnel, tester avec le site : http://www.freeformatter.com/hmac-gener ... #ad-output
Bon codage à tous ;)

Re: Procedure HMAC SHA-1

Publié : mar. 14/mai/2013 10:19
par Kwai chang caine
Merci pour ce partage 8)

Re: Procedure HMAC SHA-1

Publié : mer. 03/juil./2013 10:18
par rabika
Ha, en effet, j'ai bien cette instruction. Je ne sais pas quand elle a ete implementé dans PB mais je ne l'avais jamais vu. Peut etre parce que je m'attendais a une instruction Paint(x,y,c)

Re: Procedure HMAC SHA-1

Publié : mer. 03/juil./2013 11:43
par SPH
Spock a écrit :??? :roll:
LOL :mrgreen:
C'est vrai que je ne vois pas bien ce que fait la peinture dans une routine HMAC SHA-1 (si toutefois cette routine a un sens) :P

Re: Procedure HMAC SHA-1

Publié : mer. 03/juil./2013 18:20
par SPH
rabika a écrit :Ha, en effet, j'ai bien cette instruction. Je ne sais pas quand elle a ete implementé dans PB mais je ne l'avais jamais vu. Peut etre parce que je m'attendais a une instruction Paint(x,y,c)
Il va falloir m'expliquer ce mystere car cette phrase est la mienne : http://www.purebasic.fr/french/viewtopi ... nt#p153343
Rabika a repris mot pour mot ce que j'avais ecris dans le lien ci dessus !!!!! 8O