![]() |
AES + HMAC: wie mache ich das im Praxis
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:
Das laufe ich durch
The cryptographic feature
Code:
, und mache eine Base64.
TAESCBC.SimpleEncrypt
Ergebniss zB
Code:
Jetzt Modifiziere ich mein Base64-tezt in zB
73+7vfYHSb0eGY6NK2Mw4DYJah4vgzkvJGNKQee3urXFjIWfUQ42EefxSjSupEzx
Code:
ich kann jetzt mit gleicher Passwort TEILE der Cleartext lesen, zB
99+7vfYHSb0eGY6NK2Mw4DYJah4vgzkvJGNKQee3urXFjIWfUQ42EefxSjSupEzx
Code:
Meine gedanke: kann ich irgendwie verhindern das mein Base64 modifiziert ist ?
XXXe cryptographic feature
|
AW: AES + HMAC: wie mache ich das im Praxis
.. 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 |
AW: AES + HMAC: wie mache ich das im Praxis
Wenn du die freie Wahl der Methode hast, verwende am besten höhere Funktionen aus den mORMot Libraries.
Delphi-Quellcode:
Bis bald...
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!'); Thomas |
AW: AES + HMAC: wie mache ich das im Praxis
Zitat:
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! |
AW: AES + HMAC: wie mache ich das im Praxis
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz