AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HMAC SHA256 und Base64 codierter Schlüssel

Ein Thema von Crataeis · begonnen am 19. Nov 2019 · letzter Beitrag vom 20. Nov 2019
 
Crataeis

Registriert seit: 19. Nov 2019
1 Beiträge
 
Delphi 10.3 Rio
 
#1

HMAC SHA256 und Base64 codierter Schlüssel

  Alt 19. Nov 2019, 22:53
Hallo zusammen,

ich möchte mit einem Rest-Clienten auf eine API zugreifen.

Ich habe dafür einen alphanumerischen Key bekommen, der in Base64 codiert ist. Dieser muss zwingend in 64 Bytes decodiert werden bevor ich ihn weiter verwenden kann. Dies mache ich mit:

Code:
TIdDecoderMIME.DecodeBytes
Danach muss mit dem decodierten Key und einem String ein HMAC SHA256 generiert werden. Dafür habe ich folgende Funktion:

Code:
function tform1.CalculateHMACSHA256(const value, skey: String): String;
var
hmac: TIdHMACSHA256;
hash: TIdBytes;
begin
LoadOpenSSLLibrary;
if not TIdHashSHA256.IsAvailable then
showmessage('Error');
hmac := TIdHMACSHA256.Create;
try
hmac.Key := IndyTextEncoding_UTF8.GetBytes(skey);
hash := hmac.HashValue(IndyTextEncoding_UTF8.GetBytes(value));
Result := ToHex(hash);
finally
hmac.Free;
end;
end;
Das Problem ist, dass ich hier meinen Key nicht einsetzen kann ohne ihn in einen String umzuwandeln bzw. ihn gleich in einen String zu decodieren. Dadurch ist er aber nicht mehr brauchbar und das Ergebnis nicht korrekt.

Hat jemand eine Idee um das Problem zu lösen?

Ein alter Beispielkey: 8lzwWMeVNjb0P+oRVlVJZMFWGBgD/9Oq1Yuq8CPga6mX0LGYQ0DWlDNGuF64aYB1bh6jP+Z4/kWQFi/inmf5Qw==
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz