Einzelnen Beitrag anzeigen

Assertor

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

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

  Alt 15. Jul 2008, 18:36
Herzlich Willkommen in der DP, walther_b!

Zitat von walter_b:
In PHP ist sie eine Standard-Funktion, während es sie in Delphi wohl nicht gibt.
Das stimmt nicht, die Funktion ist bei PHP aus dem mcrypt Library und nicht bei jedem Server mit PHP dabei.

Zitat von walter_b:
das ganze möglichst Geschwindigkeitsoptimiert funktionieren würde.
Die DEC ist sehr hoch optimiert auf Geschwindigkeit, das sollte kein Problem sein. Und schneller als der interpretierte Code von einem PHP Skript ist Delphi auf jeden Fall

Zu Deiner Frage:
Grob gesagt verschlüsselt man mit dem DEC 5.1 so:
Delphi-Quellcode:
var
  ASalt: Binary;
  AData: Binary;
  APass: Binary;
...
begin
  try
    with ValidCipher(ACipherClass).Create, Context do
    try
      ASalt := RandomBinary(16);
      Mode := ACipherMode;
      APass := ValidHash(AHashClass).KDFx(APassword, ASalt, KeySize,
        TFormat_Copy, AKDFIndex);
      Init(APass);
      AData := ASalt + EncodeBinary(AText) + CalcMAC;
      Result := ValidFormat(ATextFormat).Encode(AData);
    finally
      Free;
      ProtectBinary(ASalt);
      ProtectBinary(AData);
      ProtectBinary(APass);
    end;
  except
    Raise;
  end;
end;
Da Du nun bei Deinem PHP Skript keinen Salt hast und das Schlüsselverfahren ECB statt KDF ist, muß Du dies noch entsprechend anpassen. Als CipherClass nimmst Du den DES (falls es den im DEC noch gibt - der ist ja hochgradig veraltet?!).

Schau Dir auch bitte die Tutorials bzw. Demos zu DEC an - wenn Du dann konkrete Fragen hast, stelle diese gerne. Aber Deine Arbeit kann ich nicht für Dich machen

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat