AGB  ·  Datenschutz  ·  Impressum  







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

AES128 entschlüsseln

Ein Thema von gmc616 · begonnen am 21. Apr 2020 · letzter Beitrag vom 22. Apr 2020
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

AES128 entschlüsseln

  Alt 21. Apr 2020, 11:13
Hallo Delphi-Gemeinde.

Ich muss AES128-Zeichenketten entschlüsseln.
Nun ist es aber so, dass ich von Verschlüsselungen überhaupt Ahnung habe.

Ich habe etwas rumgegoogled und eine Reihe von DCPcrypt Beispielen gefunden, aber keines bringt für mich das korrekte Ergebnis.
Ich stehe auf dem Schlauch.
Delphi-Quellcode:

  Key := '30F9FDB205E2821C1163C68B3CB542BE'; // Der Schlüssel
  Data := 'Hz6/lUsQU4i+E8f7O33cA1APEiu1SwAG'; // Die Zeichenkette , vermutlich base64, kommt aus XML
 
  Ergebnis := 'F5D0CC6A9B7FA0F9AE8324ED871B7509'; // <- Das soll raus kommen
Als Verschlüsselungsmethode habe ich das dazu gefunden: http://www.w3.org/2001/04/xmlenc#kw-aes128
Offenbar gibt es hier einen Key-Wrapper ... Den Algorithmus verstehe ich irgend wie nicht.

Leider habe ich momentan nicht die Zeit mich in dieses komplexe Thema "Verschlüsselung" einzuarbeiten (obwohl es sicherlich interessant wäre).
Diese Entschlüsselung ist nur ein kleiner Teil eines riesigen Projektes.
Daher hoffe ich auf eure Hilfe, dass ihr mir einen Schubs in die richtige Richtung geben könnt.

Danke im Voraus.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: AES128 entschlüsseln

  Alt 21. Apr 2020, 12:21
Hallo,
normales Aes128 ist es schon mal nicht, siehe hier

https://encode-decode.com/aes128-encrypt-online/

Merke: Es gibt verschiedene Aes128-Verschlüsselungen.

aes128-cfb liefert z.B. was (aber nicht Richtige)


Du musst dich wohl oder übel damit beschäftigen,
und wenn es erst mal darum geht, das korrekte Verschlüsselungsverfahren zu ermitteln.
Heiko
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: AES128 entschlüsseln

  Alt 21. Apr 2020, 13:41
Für Verschlüsselungen (und auch zum hashen) verwende ich immer das kostenlose Delphi Encryption Compendium. Einfach in ein Verzeichnis deiner Wahl extrahieren und es zum Delphi Bibliotheks-Pfad hinzufügen und schon kanns los gehen.

Beispiel:
Delphi-Quellcode:
uses
  DECCipher;

procedure TForm1.Button1Click(Sender: TObject);
const
  Salt = 'ABCDEF';
var
  Cipher: TDECCipher;
begin
  // Instanz erzeugen (Rijndael = AES 128)
  Cipher := TCipher_Rijndael.Create;
  try
    // Mit Passwort und Salt initialisieren
    // Die Salt-Konstante ist nur ein Beispiel!
    Cipher.Init(edtPassword.Text, Salt);

    // Den Wert aus dem Source-Edit verschlüsseln und
    // in Dest-Edit ausgeben.
    edtDest.Text := Cipher.EncodeBinary(edtSource.Text);

    // Entschlüsseln geht mit Cipher.DecodeBinary
    // Mit EncodeFile & DecodeFile kann eine Datei ver-/ent-schlüsselt werden
    // Mit EncodeStream & DecodeStream ein Stream...
  finally
    FreeAndNil(Cipher);
  end;
end;
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.020 Beiträge
 
Delphi 12 Athens
 
#4

AW: AES128 entschlüsseln

  Alt 21. Apr 2020, 20:00
Das gezeigte Delphi Encryption Compendium (DEC) Beispiel dürfte etwas veraltet sein.
Vermutlich passt es für V5.2, es gibt aber eine Entwicklungsversion der in Entwicklung
befindlichen V6.0.

Da wurden ein paar Methoden umbenannt und alles weiter modularisiert.
Außerdem kann diese Version durch Nutzung eines NO_ASM Compilerschalters auch auf
mobilen Plattformen benutzt werden. Es wurden für alle bisher in ASM geschriebene
Routinen Delphi Varianten geschrieben, die in dem Fall genutzt werden.

In V6.0 werden auch ein paar Beispiele mitgeliefert.

Der Hinweis darauf, dass es verschiedene AES Varianten gibt ist etwas unglücklich
formuliert. Was gemeint ist: AES verschlüsselt immer einzelne Datenblöcke.
Ist die Datenmenge größer als ein Block müssen mehrere verschlüsselt werden.
Um die Sicherheit zu erhöhen sollten dabei die Blöcke miteinander verkettet werden.
Und genau dafür gibt es verschiedene Verfahren, von denen DEC die meisten geläufigen
(leider noch kein GCM) beherrschen dürfte.

Außerdem gibt es in DEC Formatklassen für Datenformat Konvertierungen, z. B. auch
für BASE64.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: AES128 entschlüsseln

  Alt 21. Apr 2020, 20:28
Hallo,
Zitat:
Ist die Datenmenge größer als ein Block müssen mehrere verschlüsselt werden.
ja, das meinte ich und auch noch das:
Ist die Datenmenge kleiner als ein Block, wird der Block nach einem bestimmten (festzulegenden) Algorithmus aufgefüllt.
Und den muss man meines Wissens beim Entschlüsseln kennen.
Heiko
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#6

AW: AES128 entschlüsseln

  Alt 22. Apr 2020, 11:50
Data muss zuerst einmal von Base64 in binäre Daten umgewandelt werden.
Erst dann kann der Algo zum entschlüsseln angewendet werden.
"Ergebnis" ist ein Hexdump der entschlüsselten Daten. Um die tatsächlich entschlüsselten Daten vergleichen zu können, muss man diese vorher umwandeln.
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:43 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 by Thomas Breitkreuz