Hi walter_b!
Zitat von
walter_b:
Wie sieht es mit der Benutzung von
DEC aus? Muss ich mich da wirklich an das ganze Ding binden, indem ich es bei Uses angebe, oder kann ich einfach die paar wenigen entsprechenden Zeilen in mein Programm reinpasten? Oder gehört noch mehr als dies rein?
Nein, die paar Zeilen pasten geht sowieso nicht und sowas sollte man auch nicht tun, wenn man nicht versteht, was man kopiert. Diese sind ein Anwendungsbeispiel und würden so nicht compilieren.
Und ja, Du mußt die vollständige
Unit einbinden. Verschlüsselung ist etwas komplexes - dies läßt sich nicht in einer Hand voll Zeilen durchführen. Aber zum Glück nimmt Dir das
DEC die Arbeit ab.
Zitat von
walter_b:
Ich habe da ein paar DES gefunden, weiss aber nicht, welches meiner Vorstellung entspricht.
Weisst du zufälligerweise mehr darüber, welches ich benutzen muss?
Ich kann doch nicht hellsehen
Wenn ich bei mir die
Unit DECCipher.pas öffne, steht dort aber
etwas mehr:
Delphi-Quellcode:
TCipher_1DES = class; {Single DES 8 byte Blocksize, 8 byte Keysize 56 bits relevant}
TCipher_2DES = class; {Triple DES 8 byte Blocksize, 16 byte Keysize 112 bits relevant}
TCipher_3DES = class; {Triple DES 8 byte Blocksize, 24 byte Keysize 168 bits relevant}
TCipher_2DDES = class; {Triple DES 16 byte Blocksize, 16 byte Keysize 112 bits relevant}
TCipher_3DDES = class; {Triple DES 16 byte Blocksize, 24 byte Keysize 168 bits relevant}
TCipher_3TDES = class; {Triple DES 24 byte Blocksize, 24 byte Keysize 168 bits relevant}
Wie mcrypt zu benutzen ist, steht ja unter
http://de3.php.net/mcrypt_ecb. Also gehe ich davon aus - ohne mcrypt zu kennen - es handelt sich um einen einfachen DES Cipher und kein Triple DES. Zusätzlich schließe ich aus Deinen Parametern für mcrypt, daß Du libmcrypt 2.2.x verwendest.
Das ganze ist unter der PHP Infoseite zusätzlich als "deprecated" gekennzeichnet, also sollte es so nicht mehr gemacht werden...
Auf jeden Fall wäre der Cipher hier also TCipher_1DES. Zusätzlich verwendest Du mcrypt ohne IV Initialisierungsvektor (das ist schonmal nicht so gut) - hier wäre also der IV leer.
Wegen Deines mcrypt Aufrufs suchst Du Dir also aus dem TCipherMode einen mit ECB heraus:
TCipherMode = (cmCTSx, cmCBCx, cmCFB8, cmCFBx, cmOFB8, cmOFBx, cmCFS8, cmCFSx, cmECBx);
Das führt zu etwas wie:
Delphi-Quellcode:
function DecodeText(Inputtext, Key: String): String;
begin
with TCipher_1DES.Create do
try
Mode := cmECBx;
Init(Key);
Result := EncodeBinary(Inputtext, TFormat_HEXL);
finally
Free;
end;
end;
Das ganze ist nur aus dem Kopf und nicht geprüft! Es kann sein, daß Du etwas anderes als TFormat_HEXL verwenden mußt...
Jetzt habe ich ja doch Deine Arbeit gemacht
Naja, es ist ja Dein Einstand hier und mal sehen, was noch so kommt von Deiner Seite.
Gruß Assertor