AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

AES + HMAC: wie mache ich das im Praxis

Ein Thema von myicq · begonnen am 20. Jan 2021 · letzter Beitrag vom 20. Jan 2021
Antwort Antwort
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#1

AES + HMAC: wie mache ich das im Praxis

  Alt 20. Jan 2021, 09:35
Hallo alle,

ich möchte gern eine String veschlüßeln, und zwar so das es nicht möglich ist teile davon zu lesen wenn mein Base64-Kodierter string geändert wird. Ich meine, von was ich lesen kann, die kombination AES+HMAC dafür ist.

Ich verwende zZt "syncrypto" (mORMrt/Synopse), aber bin für alles offen.

Problem heute / beispiel:

ich haben eine Cleartext, zB
Code:
The cryptographic feature
Das laufe ich durch
Code:
TAESCBC.SimpleEncrypt
, und mache eine Base64.

Ergebniss zB
Code:
73+7vfYHSb0eGY6NK2Mw4DYJah4vgzkvJGNKQee3urXFjIWfUQ42EefxSjSupEzx
Jetzt Modifiziere ich mein Base64-tezt in zB
Code:
99+7vfYHSb0eGY6NK2Mw4DYJah4vgzkvJGNKQee3urXFjIWfUQ42EefxSjSupEzx
ich kann jetzt mit gleicher Passwort TEILE der Cleartext lesen, zB

Code:
XXXe cryptographic feature
Meine gedanke: kann ich irgendwie verhindern das mein Base64 modifiziert ist ?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: AES + HMAC: wie mache ich das im Praxis

  Alt 20. Jan 2021, 09:47
.. wenn Du den verschlüsselten Text (AES) nach Base64 konvertierst
- dann diesen Base64 Text änderst
diese Änderung wieder decodierst
entschlüsseln sollte dann nicht möglich sein.

Auf der Basis von DEC6.0
Delphi-Quellcode:
procedure TForm1.BtnEncryptClick(Sender: TObject);
var
  AESCipher: TCipher_AES;
begin
  AESCipher := TCipher_AES.Create;
  try
    AESCipher.Mode := cmCBCx;
    AESCipher.Init(fKey);
    cipherText.Text := TNetEncoding.Base64.encode(AESCipher.EncodeStringToString(plainText.Text));
  finally
    AESCipher.Free;
  end;
end;

procedure TForm1.BtnDecryptClick(Sender: TObject);
var
  AESCipher: TCipher_AES;
begin
  AESCipher := TCipher_AES.Create;
  try
    AESCipher.Mode := cmCBCx;
    AESCipher.Init(fKey);
    plainText.Text:= AESCipher.DecodeStringToString(TNetEncoding.Base64.Decode(cipherText.Text));
  finally
    AESCipher.Free;
  end;
end;

Grüße
Klaus
Klaus

Geändert von Klaus01 (20. Jan 2021 um 15:44 Uhr)
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
455 Beiträge
 
#3

AW: AES + HMAC: wie mache ich das im Praxis

  Alt 20. Jan 2021, 18:12
Wenn du die freie Wahl der Methode hast, verwende am besten höhere Funktionen aus den mORMot Libraries.
Delphi-Quellcode:
uses
  SynCommons, SynCrypto, SynZip;

var
  s: String;
  sBase64: RawByteString;
begin
  s := 'The cryptographic feature';
  sBase64 := BinToBase64(AESSHA256(CompressString(s), StringToUTF8('meinPW'), True));
  ShowMessage(sBase64);

  s := UnCompressString(AESSHA256(Base64ToBin(sBase64), StringToUTF8('meinPW'), False));
  if s <> 'then
    ShowMessage(s)
  else
    ShowMessage('Da ging etwas schief!');
Bis bald...
Thomas
  Mit Zitat antworten Zitat
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#4

AW: AES + HMAC: wie mache ich das im Praxis

  Alt 20. Jan 2021, 19:50
Wenn du die freie Wahl der Methode hast, verwende am besten höhere Funktionen aus den mORMot Libraries.
[/DELPHI]

Bis bald...
Thomas
Danke dafür. Ich mußte eine GUID an die Daten zufügen, da sonnst das gleiche Ergebniss als Base64 kam (inputA=>outputA).

Ich verstehe halbwegs das mit Zip, aber, ich bin immer noch neugierig wie ich mit zB HMAC_SHA256 umgehe (auch aus SynCrypto). Habe keine code online gefunden.

Danke für die Hilfe so weit!
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: AES + HMAC: wie mache ich das im Praxis

  Alt 20. Jan 2021, 20:23
Hilft das hier:

HMAC
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:56 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