Bonjour,
J'ai besoin de votre aide pour une problématique que j'ai sur un code VBA. (je suis débutant)
Mon code permet, via une fonction, d'hacher une donnée avec une clé secrète via l'algorithme HMAC SHA1.
Le problème est que la clé (variable String) peut contenir des caractères spéciaux, or l'encodage UTF8 transforme ces caractères (exemple "«" devient "«").
Et du coup, lorsque la fonction convertit la caractère sur 8 bits ça donne pas du tout ce que je souhaite.
En changeant, l'UTF8 par l'Unicode (Set asc = CreateObject("System.Text.UnicodeEncoding"), je retrouve le bon code de caractère mais sur 16 bits mais je le voudrais sur 8 bits... des idées ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Public Function HEX_HMACSHA1(ByVal sTextToHash As String, ByVal sSharedSecretKey As String) Dim asc As Object, enc As Object Dim TextToHash() As Byte Dim SharedSecretKey() As Byte Set asc = CreateObject("System.Text.UTF8Encoding") Set enc = CreateObject("System.Security.Cryptography.HMACSHA1") TextToHash = asc.Getbytes_4(sTextToHash) SharedSecretKey = asc.Getbytes_4(sSharedSecretKey) enc.Key = SharedSecretKey Dim Bytes() As Byte Bytes = enc.ComputeHash_2((TextToHash)) HEX_HMACSHA1 = ConvToHexString(Bytes) Set asc = Nothing Set enc = Nothing End Function
Partager