Einzelnen Beitrag anzeigen

walter_b

Registriert seit: 15. Jul 2008
11 Beiträge
 
Delphi 6 Personal
 
#9

Re: PHP in Pascal:mcrypt_ecb(MCRYPT_DES, $a, $b, MCRYPT_ENCR

  Alt 28. Jul 2008, 22:26
Zitat von Assertor:
Jetzt zu Deinem Source, da hast Du leider per Copy-Paste, ohne es zu verstehen, meinen Blödsinn einfach übernommen
Da hast du dich wohl diesmal, so leid es mir tut, getäuscht. Nur weil ich den Titel der Funktion nicht auf die darin enthaltene Funktion angepasst habe, heisst das nicht, dass ich es nicht verstanden habe. Mir ging es zuerst einmal darum, das ganze zum laufen zu bringen, und erst dann den "Zuckerguss" zu machen. Und noch kurz wegen dem nicht verstehen... Mittlerweile habe ich die ganze DEC auseinander genommen, um den Vorgang von EncodeBinary zu verstehen...



Zitat von Assertor:
3) Zudem solltest Du, wenn Du schon den Key per Funktionsparameter übergibst, auch den Input/Outputtext per Parameter übergeben. Sonst kann die Funktion ja nur den -einen- vorgegeben Text ver/entschlüsseln.
Es ist mein Ziel, nur diesen einen Input-Text zu verschlüsseln. Einzig und alleine der Key variiert.


Zitat von Assertor:
4) Du verwendest einfaches DES ohne SALT und IV (Initialisierungsvektor). Hart gesagt: Dann brauchst Du im Prinzip auch garnicht zu verschlüsseln.
Die Verschlüsselung, die ich hier nachstellen will, stammt nicht von mir. Von da her spielt es keine Rolle, ob die Verschlüsselung Sinn macht, oder nicht.


Zitat von Assertor:
Zitat von walter_b:
Zitat von Delphi:
... raised exception class EDECExeption with message 'Input is not an valid HEXL Format.'. Process stopped.
Was soll dieser Schwachsinn? Wieso kann ich es mit diesem Wert verschlüsseln, wenn ich es mit dem selben Wert nicht rückverschlüsseln kann? Wie kann ich diese Problem umgehen?
Das frage ich mich auch. Willst Du Deinen Blödsinn etwa dem Delphi Compiler or dem Autoren anlasten?
Tut mir leid, dass ich mich da unklar ausgedrückt habe... "Was soll der Schwachsinn, welchen ich hier wieder zusammengebaut habe" wäre die vollständige Frage gewesen, wollte niemandem etwas anhängen.


Und jetzt noch zurück zum Code (ich verwende der Klarheit halber wieder die statische Funktion mit einem Parameter:


Delphi-Quellcode:
function EncodeText(Key: String): String;
begin
  with TCipher_1DES.Create do
  try
    Mode := cmECBx;
    Init(Key);
    Result := EncodeBinary('KGS!@#$%');
  finally
    Free;
  end;
end;
Diese Funktion erstellt mir aus einem ziemlich verunstalteten (undruckbare ASCII-Zeichen und doch sehr spezielle, andere Sonderzeichen) String einen Hexadezimal-Hash mit einer Länge von 16 Stellen (z.b. '90004151ADA7B438' ). Da der Inputtext fest gesetzt ist, ist also der Key von Bedeutung.
Da DecodeText allerdings auch den Key benötigt, funktioniert in diesem Falle die Umkehrfunktion nicht, oder? Oder ist es möglich, den Key anhand des Input- und des Output-textes rauszufinden?
  Mit Zitat antworten Zitat