AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Rijndael decrypt mit Passwort & IV als Passphrase
Thema durchsuchen
Ansicht
Themen-Optionen

Rijndael decrypt mit Passwort & IV als Passphrase

Ein Thema von totti14 · begonnen am 23. Feb 2018 · letzter Beitrag vom 24. Feb 2018
Antwort Antwort
totti14

Registriert seit: 26. Mai 2005
Ort: Bremen
91 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Rijndael decrypt mit Passwort & IV als Passphrase

  Alt 23. Feb 2018, 18:53
Hallo gammatester,

das war die C Funktion dazu.

Code:
//Expand a user-supplied key material into a session key.
// key       - The 128/192/256-bit user-key to use.
// chain     - initial chain block for CBC and CFB modes.
// keylength - 16, 24 or 32 bytes
// blockSize - The block size in bytes of this Rijndael (16, 24 or 32 bytes).
void CRijndael::MakeKey(char const* key, char const* chain, int keylength, int blockSize)
Der falsche Mode ist da aus einen Copy&Paste reingerutscht
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: Rijndael decrypt mit Passwort & IV als Passphrase

  Alt 23. Feb 2018, 19:34
OK, nehmen wird an, das ECB mit 128-Bit key vorliegt, dann sollte
es ungefähr so gehen
Delphi-Quellcode:
var
  AES: TDCP_rijndael;

const
  key128: array[0..15] of Ansichar = 'Key16_123456789!';
var
  plain,ct: array[0..15] of byte
...
  AES.Init(key128,128,nil);
  AES.EncryptECB(plain,ct);
Das Problem mit DCPCrypt (so wie ich es kenne, zB dcpcrypt2-2010.zip) ist, daß EncryptECB nur einen 16-Byte-Block akzeptiert. Du mußt also in einer Schleife entschlüsseln.

Zu Testen kannst Du zB http://jacquelin.potier.free.fr/CryptoStuff/ hernehmen. Wenn's dann wirklich ECB ist kannst Du auch meine AES-Routinen http://www.wolfgang-ehrhardt.de/crypt_de.html#AES verwenden.
  Mit Zitat antworten Zitat
totti14

Registriert seit: 26. Mai 2005
Ort: Bremen
91 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Rijndael decrypt mit Passwort & IV als Passphrase

  Alt 23. Feb 2018, 19:44
Mode ist CBC und dann a' 64 Byte Blöcke.
Das entpacken usw bekomme ich ja noch hin aber ich habe keine Ahnung von der Initialisierung mit den beiden String.

Hier ist mal ein Beispiel von der C Unit

https://www.codeproject.com/Articles...ncryption-Decr

Das CryptoTool ist ja sehr schön. Kannte ich gar nicht.
Damit hat das AES entpacken funktioniert wenn ich dort meine beiden Strings unter Key & IV eingebe.

Geändert von totti14 (23. Feb 2018 um 19:50 Uhr)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

AW: Rijndael decrypt mit Passwort & IV als Passphrase

  Alt 23. Feb 2018, 20:14
Hier ein volständiges Programm analog zu C mit Ver- und Entschlüssseln (ich benutze Deinem IV in C hat man 16 0-Bytes).
Delphi-Quellcode:
program T_DCP;

{$apptype console}

uses
  SysUtils,
  Classes,
  DCPcrypt2,
  DCPblockciphers,
  DCPrijndael;

var
  AES: TDCP_rijndael;

var
  sm_chain0: array[0..15] of Ansichar = 'Vector16_1234567';
  key: array[0..15] of Ansichar = '1234567890123456';
  szDataIn1: array[0..47] of Ansichar = 'ababababccccccccababababccccccccababababcccccccc';

procedure TestCBCDP;
var
  i: integer;
var
  tmp,szDataOut: array[0..47] of Ansichar;
begin
  //fillchar(sm_chain0, sizeof(sm_chain0), 0);
  //Verschlüsseln
  AES.CipherMode := cmCBC;
  AES.Init(key,128,@sm_chain0);
  AES.EncryptCBC(szDataIn1,szDataOut,sizeof(szDataIn1));
  writeln('Verschuesseln: ');
  writeln(szDataOut);

  //Entschlüsseln
  AES.CipherMode := cmCBC;
  AES.Init(key,128,@sm_chain0);
  AES.DecryptCBC(szDataOut,tmp,sizeof(szDataIn1));
  writeln('Ver + Entschuesseln: ',tmp);
end;

begin
  AES := TDCP_rijndael.Create(nil);
  TestCBCDP;
end.
Und das Ergebnis
Code:
C:\TMP\yy>T_DCP.exe
Verschuesseln:
à¤┌é┴╠7}Ê©▄ÒáÁ¬, 3{┐Wf╔♣╣[G☺
Ver + Entschuesseln: ababababccccccccababababccccccccababababcccccccc
  Mit Zitat antworten Zitat
totti14

Registriert seit: 26. Mai 2005
Ort: Bremen
91 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Rijndael decrypt mit Passwort & IV als Passphrase

  Alt 24. Feb 2018, 09:52
Danke gammatester funzt perfekt.
  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 00:38 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