AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Mit PHP verschlüsseln -> Mit Delphi entschlüsseln (DEC)
Thema durchsuchen
Ansicht
Themen-Optionen

Mit PHP verschlüsseln -> Mit Delphi entschlüsseln (DEC)

Ein Thema von sushiprinz · begonnen am 16. Aug 2004 · letzter Beitrag vom 19. Aug 2004
 
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Mit PHP verschlüsseln -> Mit Delphi entschlüsseln (DE

  Alt 19. Aug 2004, 09:30
in deinem Falle wäre das
Delphi-Quellcode:
  
  
var
  Input, Output, Password, IV: String;
begin
  IV := '12345678';
  Password := 'schluessel';
  Input := 'Was zu verschlüsseln war.';
  with TCipher_Blowfish.Create('', nil) do
  try
    Mode := cmCFB;
    Init(Password[1], Length(Password), Pointer(IV));
    Output := EncodeString(Input);
  finally
    Free;
  end;
  Output := StrToFormat(PChar(Input), -1, fmtHEX);
end;
WICHTIG! dabei ist aber das Lenght(IV) = Cipher.BlockSize ist. Und ansonsten sieht alles schon sehr richtig aus.
Desweiteren solltest du nachschauen was PHP unter dem CFB Mode versteht. Es gibt nämlich da sehr viele verschiedene Cipher Modis die sich CFB schimpfen aber denoch unterschiedlich sind.
Als erstes verschlüsselst du mal im ECB Mode einen festen Text. Den binären und unformatierten Outpu vom PHP zum DEC vergleichst du. Nungut ich weis aber jetzt schon das DEC zum PHP in diesem Punkt kompatibel ist.
Als nächstes obige Routine aber OHNE das StrToFormat(), eg. echo base64_encode($encrypted_data); im PHP die beiden binären Output vergleichen. Wenn diese auch übereinstimmen dann mit der MIME64 Formatierung ausprobieren.
.InitKey() kannst du nicht verwenden, da diese Methode dein übergebenes Passwort per Hash-Funktion in einen sicheren Session Key umwandelt. Nun, das macht PHP natürlich nicht so. Du musst also immer .Init() verwenden wenn man kompatibel bleiben will.

Achso: bei Blowfisch gibt es auf Grund fehlender Beschreibungen zum Algo. durch B.Schneier eine Unklarheit ob der Algo. in Big oder Little Endian arbeitet. Da das nun Interpretationsfrage der Programmierer wurde gibt es sozusagen 2 verschiedene Versionen vom Blowfish die technisch gesehen aber identisch sind. Denoch sind beide Versionen untereinander inkompatibel.

Gruß Hagen

PS: auch DEC verwendet einen Standard-IV falls dieser beim .Init(.., nil) mit nil angegeben wurde. Allerdings ist die verwendete Methode nirgends standardisiert und unterscheidet sich ganz gewisse von der in PHP. Im DEC wird der IV=00000000000 verwednet der aber zusätzliche mit sich selber verschlüsselt wird. D.h. nur mit richtigem Passwort erzeugt man den gleichen internen IV. Im PHP wird dagegen der IV binär 1 zu 1 verwendet.
  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 13:34 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