Einzelnen Beitrag anzeigen

KaiW

Registriert seit: 5. Feb 2016
6 Beiträge
 
Delphi XE7 Architect
 
#2

AW: DXE7+Indy: HMAC SHA256 - Encoding

  Alt 18. Okt 2016, 12:09
Hallo,

hier die Lösung für alle, die ein ähnliches Problem haben:

Delphi-Quellcode:
function GenerateSignature(const AData, AKey: string): string;
var
   AHMAC: TIdBytes;
begin
     IdSSLOpenSSL.LoadOpenSSLLibrary;

     IF NOT TIdHashSHA256.IsAvailable
      THEN Raise Exception.Create('SHA-256 hashing is not available!');

     With TIdHMACSHA256.Create do
      try
         Key:= IndyTextEncoding_UTF8.GetBytes(AKey);
         AHMAC:= HashValue(IndyTextEncoding_UTF8.GetBytes(AData));
      finally
         Free;
      end;

     Result:= TIdEncoderMIME.EncodeBytes(AHMAC);
end;
Es muß also definitiv UTF8 verwendet werden, um ein gleiches Ergebnis zu erzielen.

Für weitere Informationen zum Thema Amazon MWS Signatur mit Delphi und Indy, siehe auch den folgenden Thread in Englisch:
http://stackoverflow.com/questions/4...d-indy-classes
  Mit Zitat antworten Zitat