AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

Ein Thema von rapante · begonnen am 5. Mär 2021 · letzter Beitrag vom 10. Mär 2021
Antwort Antwort
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#1

AW: DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

  Alt 5. Mär 2021, 16:26
Hy TurboMagic,
leider ist mein Verständnis der Thematik nicht sehr ausgeprägt.

Ich benutze die folgende Funktion zum verschlüsseln:
Delphi-Quellcode:
function Encrypt(const AText: String; const APassword: String): String; overload;
var
  ASalt: Binary;
  AData: Binary;
  APass: Binary;
begin
  with ValidCipher(TCipher_Rijndael).Create, Context do
  try
    ASalt := RandomBinary(16);
    APass := ValidHash(THash_Whirlpool).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, 1);
    Mode := cmCBCx;
    Init(APass);
    SetLength(AData, Length(AText) * SizeOf(AText[1]));
    Encode(AText[1], AData[1], Length(AData));
    Result := ValidFormat(TFormat_Mime64).Encode(ASalt + AData + CalcMAC);
  finally
    Free;
    ProtectBinary(ASalt);
    ProtectBinary(AData);
    ProtectBinary(APass);
  end;
end;
Wenn ich das richtig verstanden habe, gibt es keine Entsprechung von KDFx in anderen Libs (Crypto.js) und ich weiß nicht wie ich das umsetzen kann.

Leider ist das Problem ein uneingeplanter Nebenschauplatz meines eigentlichen Projektes. Daher ist meine Hoffnung, dass ich das Rad nicht neu erfinden muss und mir jemand mit einem funktionierenden Codeschnipsel behilflich sein kann...

Welcher Algorithmus/Parameter verwendet werden ist im Prinzip egal. Es gibt keine Vorgaben. Nur Klartext darf es nicht sein

Wenn 6.1 "gefixt" ist, kann ich das gerne bei mir testen
Micha
  Mit Zitat antworten Zitat
TurboMagic

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

AW: DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

  Alt 6. Mär 2021, 16:48
Hallo,

1. KDF sind ja Key Deviation Functions, also Ableitung eines gehashten Schlüssels aus einem anderen, damit man aus einem Masterschlüssel mehrere generieren kann.

2. Die KDF2 Umsetzung in DEC 5.2 stellte sich während der DEC 6.0 Entwicklung als KDF1 heraus!
Die hat nämlich keine KDF2 sondern KDF1 Tests bestanden. Da ich dann aber gelernt habe, dass
KDF1-3 alle nur minimale Unterschiede im Code aufweisen, habe ich in DEC 6.0 alle 3 Varianten
umgesetzt. Falls du das wirklich brauchst findest du es also evtl. als KDF1, 2 oder 3 in den
anderen Bibliotheken.

3. Das wäre ein Grund mehr die gefixte 6.1 zu benutzen.

4. In DEC 6.0 wurde auch die neueste Fassung des Whirlpool Hash Algorithmus hinzugefügt und
bestehende umbenannt (da gibt's aber glaube ich einen Compilerschalter um die alte
Namensgebung zu behalten...). Naja, ab DEC 6.0 gibt's auch eine PDF Doku!!! Da steht sowas
dann drinn.

5. Die Frage ist aber, ob ein KDF für deine Zwecke wirklich benötigt wird

6. Ein Fix für die Compilierung unter < XE7 ist quasi schon in Arbeit.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

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

AW: DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

  Alt 6. Mär 2021, 17:33
EIn potentieller Fix ist im Development Branch jetzt drin, sollte jetzt unter XE5 compilieren.
Da ich den Pull Request aber nicht 1:1 umsetzen wollte, hab ich den Autor des Requests gebeten
meine Umsetzung nochmal kurz zu testen. Ist der erfolgreich gibt's wohl eine 6.1.1 version...
  Mit Zitat antworten Zitat
TurboMagic

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

AW: DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

  Alt 7. Mär 2021, 09:18
DEC 6.1.1 ist jetzt offiziell veröffentlicht.
Die einzige Änderung ist, dass es jetzt auch unter D2009-XE6 compilieren sollte.

Hier liegt das Release:

https://github.com/MHumm/DelphiEncry...ses/tag/V6.1.1
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

  Alt 7. Mär 2021, 14:43
Vielen Dank für die neue Version des DEC-Projektes 6.1.1!
Ist eventuell auch vorgesehen, eine VCL-Version von Cipher_FMX bzw. Hash_FMX den Demos beizufügen? Das wäre durchaus wünschenswert, denn so einfach das Projekt von FMX zu VCL
umzugestalten ist es nicht.
Es würde das DEC-Projekt attraktiver machen, so glaube ich.
Norbert
  Mit Zitat antworten Zitat
TurboMagic

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

AW: DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

  Alt 7. Mär 2021, 18:29
Ich wüsste nicht was an einer Übertragung so schwierig
wäre. Es werden ja nur Standard Controls benutzt:

TButton
TEdit
TCheckbox
TCombobox
TLabel

und das halt in eine Vertikale Scrollbox gepackt,
damit es als mobile App funktioniert. Eine andere
Anordnung unter Windows ist ja kein Problem.
Eine Konvertierung wäre in < 10 min. fertig...

Ich würde meine Zeit lieber in die Umsetzung
neuer Algorithmen investieren.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#7

AW: DEC 5.2 Encrypt -> PHP/JS etc. Decrypt

  Alt 8. Mär 2021, 11:19
Moin,
ich habe diverse Probleme bei der Benutzung der aktuellen Version unter XE2:

1. In den .inc Dateien wird "$ENDIF" nicht erkannt. Es muss hier "$IFEND" heißen.
2. Die Funktion AutomaticDecrement (DECUtilRawByteStringHelper.pas) gibt es in XE2 noh nicht.
3. String/Integer-Klassen Funktionen gibt es noch nicht (String.irgendwas, Integer.tostring)
4. DECUtil.pas: Low(Buffer) -> Low kann nicht auf lange Stringtypen angewendet werden.

Beim letzten Punkt hänge ich gerade noch.
Micha
  Mit Zitat antworten Zitat
Antwort Antwort

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