AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi DEC 5.2 mit Vector deccipher Umbau von DOT net auf Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

DEC 5.2 mit Vector deccipher Umbau von DOT net auf Delphi

Ein Thema von Digielm · begonnen am 17. Okt 2012 · letzter Beitrag vom 25. Mär 2013
 
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#17

AW: DEC 5.2 mit Vector deccipher Umbau von DOT net auf Delphi

  Alt 21. Mär 2013, 08:23
Wie zu erwarten war, geht es natürlich nicht so einfach.

Möglicherweise ist der C#-Code ja nicht mit DEC umkehrbar.
Deshalb wollte ich das jetzt mal mit deinem AES_CBC probieren, kriege da aber auch nur Zeichensalat raus.
Würdest du mir verraten, wie ich das implementieren muss?

Die Testvektoren sind:
Salt: Lovley
IV: 2013-02-14 15:45:07.307 (wenn ein AES-IV immer 16 Byte hat, heißt das, dass hier nur '2013-02-14 15:45' genommen wird?)
Base64-Ciphertext: d1n/OvzsX3r12qplF5izlg==
Plaintext: Test
Passwort (ASCII-Werte): 7 14 31 13

Mein Versuch sieht wie folgt aus (Base64-Decode ist aus DEC):
Delphi-Quellcode:
function DecryptBase64Str(const CipherText_Base64: Binary; const Password: Binary; const Salt: Binary; const InitVector: string): string;
var
  hash: PHashDesc;
  key: array[0..19] of byte;
  ctx: TAESContext;
  aesblck: TAESBlock;
  decodedTxt: string;
  i: Integer;
begin
  hash:= FindHash_by_ID(_SHA1);
  pbkdf1(hash,@Password[1], Length(password),@Salt[1],2,key,20);
  for i := 1 to 16 do
    aesblck[i-1]:= Byte(initvector[i]);
  decodedTxt:= TFormat_MIME64.Decode(CipherText_Base64);
  Result:= decodedTxt;
  ctx.IV:= aesblck;
  AES_CBC_Init_Decr(key,160,aesblck,ctx);
  AES_CBC_Decrypt(@decodedTxt[1],@result[1],length(decodedTxt),ctx);
end;
Über die kryptographische Sicherheit lässt sich sicherlich streiten, aber es geht ja erstmal darum, dass zum Laufen zu bekommen.

Edit:
Was mir noch einfällt: die C#-Verschlüsselung benutzt PKCS7 als Paddingmodus.
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann

Geändert von ToFaceTeKilla (21. Mär 2013 um 08:56 Uhr)
  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 18:06 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