Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi unit Blowfish (https://www.delphipraxis.net/180190-unit-blowfish.html)

Walter Landwehr 29. Apr 2014 15:12

Delphi-Version: XE2

unit Blowfish
 
Hallo,

hat jemand Erfahrung mit dieser Unit.

ich rufe die procedure auf.

Delphi-Quellcode:

sEncText := 'EÚ'#$81'?ze,ª¶¯,…'


DecryptCFB(sEncText[1], sEncText[1], Length(sEncText));

procedure TDCP_blowfish.DecryptCFB(const InData; var OutData; Size: longint);
{$ELSE}
procedure BlowfishDecryptCFB;
{$ENDIF}
var
  i: longint;
  TB: array[0..7] of byte;
  b: byte;
begin
  {$IFDEF CFORM}
  if not fInitialized then
    raise Exception.Create('Blowfish: Not initialized');
  {$ELSE}with Data do begin{$ENDIF}
  for i:= 0 to Size-1 do
  begin
    b:= PByteArray(@InData)^[i];
    {$IFDEF CFORM}Encrypt(LB,TB){$ELSE}BlowfishEncryptECB(Data,LB,TB){$ENDIF};
    PByteArray(@OutData)^[i]:= PByteArray(@InData)^[i] xor TB[0];
    Move(LB[1],LB[0],7);
    LB[7]:= b;
  end;
  {$IFNDEF CFORM}end;{$ENDIF}
end;
Unter D2007 wurde folgender Wert zurückgegeben: sEncText = 'IQN4.0WL1951'

unter XE2 wird dieser Wert zurückgegeben: sEncText = 'sQƒ§?ݦàþÒ'#$11'ñ'

Wer weiß hier Rat? Bin schon seit Tagen dabei dies Problem zu lösen.

Vielen Dank im Voraus für einen hoffentlich erfolgreichen Tipp.

baumina 29. Apr 2014 15:18

AW: unit Blowfish
 
sEncText wird kein AnsiString sein.

Walter Landwehr 29. Apr 2014 15:52

AW: unit Blowfish
 
Doch ist AnsiString.

Bernhard Geyer 29. Apr 2014 15:55

AW: unit Blowfish
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1257401)
Doch ist AnsiString.

Glaube ich nicht. Hast du es im Debugger per Speicherauszug kontrolliert?

Walter Landwehr 29. Apr 2014 16:10

AW: unit Blowfish
 
Doch ist es:

Hier Speicherauszug.

sEncText: AnsiString $18F9AC : $CCC24DC

baumina 30. Apr 2014 06:08

AW: unit Blowfish
 
Und ShortString (String[20]) geht auch nicht?

Walter Landwehr 1. Mai 2014 10:04

AW: unit Blowfish
 
Nein geht auch nicht.

Sir Rufo 1. Mai 2014 10:40

AW: unit Blowfish
 
Na das ist hier ja mal ein lustiges Rätselraten ... erinnert mich an "Ich sehe was, was du nicht siehst".

@Walter Landwehr

Ob es dir wohl möglich ist ein klitzekleines (kompilierbares) Beispiel-Projekt (Konsolenprogramm sollte ja reichen) zu erstellen?

Bei solchen Sachen ist auch eine Unit-Test-Anwendung sinnvoll, da man hier Eingabe-Parameter und erwartete Ausgabe gleich als Prüfung mit einbringt.

himitsu 1. Mai 2014 10:42

AW: unit Blowfish
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1257394)
hat jemand Erfahrung mit dieser Unit.

Nein.

Und werde ich auch nicht, da jemand das Wichtigste vergessen hat.
Welche?

Google meinte, aber die ist es ja nicht.
http://read.pudn.com/downloads139/so...fish.pas__.htm


Nja, wenn der Fehler nicht in deinem Code, sondern in der unbekannten Unit liegt, dann kann dir keiner helfen.

Sir Rufo 1. Mai 2014 10:57

AW: unit Blowfish
 
Heureka, ich habe einen Teil der Schnitzeljagd (oder heißt das jetzt Code-Caching) gelöst.

Hier angesprochen ist DCPcrypt v1.31
http://www.cityinthesky.co.uk/opensource/dcpcrypt/

Die Lösung ergibt sich beim Lesen des Inhaltes, der sich hinter dem Link verbirgt

Bjoerk 1. Mai 2014 11:15

AW: unit Blowfish
 
However, I don’t recommend anyone to use it any more. :-D

Hat XE2 noch den Compilerschalter $H. Mit $H- könnte man es mal versuchen?

Walter Landwehr 2. Mai 2014 08:46

AW: unit Blowfish
 
Liegt es etwa an DCPcrypt v1.31 das ich bei D2007 verwendet habe. Unter XE2 habe ich die Version 2. Ich habe die beiden Versionen verglichen aber keinen Unterschied gefunden. OK ich mach 2 Demos 1x unter D2007 1 x unter XE2. Kann dies aber erst zum Wochenende machen.

himitsu 2. Mai 2014 12:02

AW: unit Blowfish
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1257648)
Liegt es etwa an DCPcrypt v1.31 das ich bei D2007 verwendet habe.

Was fragst du uns?

Du hast das Programm und solltest daher auch wissen wo der Fehler auftritt.
(Debuggen, Try-Except mit Benennung drumrum oder Fehlerbehandlung ala Eurekalog)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04: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