Procedure HMAC SHA-1

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
caussatjerome
Messages : 50
Inscription : lun. 24/sept./2012 20:57
Localisation : Somme

Procedure HMAC SHA-1

Message 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 ;)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Procedure HMAC SHA-1

Message par Kwai chang caine »

Merci pour ce partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
rabika
Messages : 1
Inscription : mer. 03/juil./2013 8:29

Re: Procedure HMAC SHA-1

Message 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)
Avatar de l’utilisateur
SPH
Messages : 4726
Inscription : mer. 09/nov./2005 9:53

Re: Procedure HMAC SHA-1

Message 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
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
SPH
Messages : 4726
Inscription : mer. 09/nov./2005 9:53

Re: Procedure HMAC SHA-1

Message 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
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Répondre