AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi PHP in Pascal:mcrypt_ecb(MCRYPT_DES, $a, $b, MCRYPT_ENCRYPT)
Thema durchsuchen
Ansicht
Themen-Optionen

PHP in Pascal:mcrypt_ecb(MCRYPT_DES, $a, $b, MCRYPT_ENCRYPT)

Ein Thema von walter_b · begonnen am 15. Jul 2008 · letzter Beitrag vom 29. Jul 2008
 
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

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

  Alt 28. Jul 2008, 19:45
Hi walter_b,

zunächst mal aus der DECFmt.pas:
Delphi-Quellcode:
TFormat_Copy = class; // copy input to output, it's the Default Format, eg FormaClass = nil
TFormat_HEX = class; // HEXadecimal in UpperCase
TFormat_HEXL = class; // HEXadecimal in Lowercase
TFormat_MIME32 = class; // MIME like format for Base 32
TFormat_MIME64 = class; // MIME Base 64 format
TFormat_PGP = class; // PGP's MIME Base 64 with PGP's Checksums
TFormat_UU = class; // Unix UU Base 64
TFormat_XX = class; // Unix XX base 64
TFormat_ESCAPE = class; // Escaped Strings
Jetzt zu Deinem Source, da hast Du leider per Copy-Paste, ohne es zu verstehen, meinen Blödsinn einfach übernommen

Probier mal folgendes
Delphi-Quellcode:
function EncodeText(Input, Key: String): String;
begin
  with TCipher_1DES.Create do
  try
    Mode := cmECBx;
    Init(Key);
    Result := EncodeBinary(Input); // bitte bei EncodeText() auch EncodeBinary nutzen und NICHT DecodeBinary!
  finally
    Free;
  end;
end;

function DecodeText(Input, Key: String): String;
begin
  with TCipher_1DES.Create do
  try
    Mode := cmECBx;
    Init(Key);
    Result := DecodeBinary(Input); // hier stand bei Dir DecodeBinary('abc', TFormat_HEXL);
  finally
    Free;
  end;
end;
Beachte:
1) Hinter EncodeBinary/DecodeBinary kannst Du einen zweiten Parameter angeben, z.B. EncodeBinary(Input, TFormat_HEXL). Damit werden die Eingabe/Ausgabedaten formatiert, d.h. es wird ein bestimmtes Eingabeformat erwartet bzw. ausgegeben.
2) Dein Fehler kommt dann auch daher: Du gibst, wie in meiner ersten Antwort, TFormat_HEXL an - aber bei Deinem Source wird etwas anderes genutzt, als Daten im HEX Format...
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.
4) Du verwendest einfaches DES ohne SALT und IV (Initialisierungsvektor). Hart gesagt: Dann brauchst Du im Prinzip auch garnicht zu verschlüsseln.

Zitat von walter_b:
Wobei hier der "Key" der Hash-Wert ist, welcher vorhin bei EncodeBinary rauskam.
Falsch. Das ist ganz sicher kein Hash...

Die Funktion arbeitet nach dem Prinzip:
Input = Eingabe-Text
Key = Passwort im Klartext (bei beiden Funktionen!)
Result = Ergebnis

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?

Gruß Assertor
Frederik
  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 01:53 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