Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi PHP und Blowfish (https://www.delphipraxis.net/184296-delphi-php-und-blowfish.html)

greenmile 16. Mär 2015 10:15

Delphi PHP und Blowfish
 
Hallo,

ich muss etwas in Delphi verschlüsseln und mit PHP wieder entschlüsseln. Hierfür nutze ich DEC 5.2, allerdings peile ich das nicht so recht. Vielleicht könnte mir jemand auf die Schnelle sagen warum folgendes nicht läuft? Das wäre super ... vielen Dank. Ich möchte einfach nur "quick and dirty" etwas auf die Schnelle halbwegs (!) sicher verschlüsseln.

Code:
function encryptBlowfisch(Key, Source: string): String;
  var IV: string;
begin
  IV := '12345678';
  with DECCipher.TCipher_Blowfish.Create do
   try
     Mode := cmCBCx;
     Init(Key,IV);
     Result := EncodeBinary(Source, TFormat_HEX);
   finally
     Free;
   end;
end;

function decryptBlowfisch(Key, Source: string): String;
  var IV: string;
begin
  IV := '12345678';
  with DECCipher.TCipher_Blowfish.Create do
   try
     Mode := cmCBCx;
     Init(Key,IV);
     Result := DecodeBinary(Source, TFormat_HEX);
   finally
     Free;
   end;
end;
Code:
 $decrypted_data = mcrypt_cfb (MCRYPT_BLOWFISH, $key, $input, MCRYPT_ENCRYPT, '12345678');

mkinzler 16. Mär 2015 10:22

AW: Delphi PHP und Blowfish
 
Was geht nicht?
Kommt ein Fehler?
Kommt was falsches raus?

greenmile 16. Mär 2015 10:23

AW: Delphi PHP und Blowfish
 
Wenn ich das Ergebnis von "decryptBlowfisch" der PHP als $Input gebe, kommt alles raus, aber nicht das richtige.

mkinzler 16. Mär 2015 10:25

AW: Delphi PHP und Blowfish
 
Häh?

greenmile 16. Mär 2015 10:29

AW: Delphi PHP und Blowfish
 
Also, bei Delphi kommt folgendes raus:

Code:
  encryptBlowfisch('schluessel','Hallo Welt');
  // Ergibt 4AB79BC001D8CA706467
Unter PHP

Code:
 $key = 'schluessel';
 $input = '4AB79BC001D8CA706467';
 $decrypted_data = mcrypt_cfb (MCRYPT_BLOWFISH, $key, $input, MCRYPT_DECRYPT, '12345678');
  // Ergibt zNZqXeQEH4s+lXFX6F6buKINKKI=, aber nicht "Hallo Welt"

mkinzler 16. Mär 2015 10:34

AW: Delphi PHP und Blowfish
 
Wahrscheinlich verwendet DEC einen andere initialization vector

greenmile 16. Mär 2015 10:38

AW: Delphi PHP und Blowfish
 
Wird der nicht so übergeben?

Code:
  IV := '12345678';
  Init(Key,IV);

CCRDude 16. Mär 2015 10:40

AW: Delphi PHP und Blowfish
 
In DEC verwendest Du Cipher Block Chaining (CBC), in PHP Cipher Feedback (CFB). Verwende doch mal den gleichen Modus ;)

himitsu 16. Mär 2015 10:40

AW: Delphi PHP und Blowfish
 
DecodeBinary ... Unicode?

Was kommt bei MCRYPT_DECRYPT im PHP raus?
PS: http://php.net/manual/en/function.mcrypt-cfb.php -> Warning

greenmile 16. Mär 2015 10:44

AW: Delphi PHP und Blowfish
 
Ruft intern "Encode" auf. Ich kann doch nix anderes aufrufen.

mkinzler 16. Mär 2015 10:47

AW: Delphi PHP und Blowfish
 
Hier den richtigen Modus
Delphi-Quellcode:
Mode := cmCBCx;
angeben.

gammatester 16. Mär 2015 11:23

AW: Delphi PHP und Blowfish
 
'Hallo Welt' ist je nach Stringtyp 10 oder 20 Bytes lang, also auf jeden Fall kein Vielfaches von 8. DEC kocht sein eigenes Nichtstandard-Süppchen in diesen Fällen:
Zitat:

cmCBCx = Cipher Block Chainung, with CFB8 padding of truncated final block
Nimm mal testweise 8 oder 16 Bytes.

greenmile 16. Mär 2015 13:28

AW: Delphi PHP und Blowfish
 
Zitat:

Zitat von mkinzler (Beitrag 1293612)
Hier den richtigen Modus
Delphi-Quellcode:
Mode := cmCBCx;
angeben.

In Delphi? Habe ich doch ... Wnen ich es im PHP in mcrypt_cbc ändere, kommt ebenfalls nur Müll raus.

gammatester 16. Mär 2015 13:59

AW: Delphi PHP und Blowfish
 
Es bleibt das alte Spiel: Warum versuchst Du nicht zu erst mit kompletten Byteblocks zu arbeiten? Wenn das lauft, hast Du wahrscheinlich noch genug andere Probleme, zB
  • wie wird das Passwort in Schlüssel umgerechnet? (wenn es nicht direkt benutzt wird, was bei BF möglich ist. Dann aber ev. Unicode beachten). Werden irgendwelche Hashes/KDFs benutzt?
  • welches Padding wird benutzt?
  • welche Codierung des Cyphertextes wird benutzt? (bei Dir auf PHP-Seite offensichtlich Base64, Dein decodierter Text zNZqXeQEH4s+lXFX6F6buKINKKI= ergibt zB 20 Bytes Ausgabe.

greenmile 16. Mär 2015 14:03

AW: Delphi PHP und Blowfish
 
Naja, letztendlich brauche ich nur irgendwas, was sicherer verschlüsselt als Base64. Es muss nicht NSA tauglich sein sondern lediglich die Script-Kiddies abhalten.

Sir Rufo 16. Mär 2015 14:35

AW: Delphi PHP und Blowfish
 
Zitat:

Zitat von greenmile (Beitrag 1293651)
Naja, letztendlich brauche ich nur irgendwas, was sicherer verschlüsselt als Base64. Es muss nicht NSA tauglich sein sondern lediglich die Script-Kiddies abhalten.

Mit Base64 wird nun schonmal nichts verschlüsselt! Da wird etwas codiert, und das ist etwas völlig anderes als eine Verschlüsselung.

greenmile 16. Mär 2015 14:39

AW: Delphi PHP und Blowfish
 
Man kann es auf jeden Fall auf die Schnelle nicht lesen.

greenmile 16. Mär 2015 15:54

AW: Delphi PHP und Blowfish
 
-Lösch mich-


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz