Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kann mir jemand diesen C++ Code in Delphi umwandeln? (https://www.delphipraxis.net/14585-kann-mir-jemand-diesen-c-code-delphi-umwandeln.html)

Pseudemys Nelsoni 12. Jan 2004 04:35


Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
hoi,

um diesen code geht es:

Delphi-Quellcode:
#include <string.h>

void main(void)
{
   char pass[] = "12345678";
   char apgard[9];

   apgar(pass, apgard);
}

void apgar(char v[], char *outbuf)
{
        char w[9];
        int i;

        for (i = 0; i < 8; i++)
        {
                int a = v[i];
                w[i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./"([a & 1 ? a << (a & 1) & v[8 - i] : a ^ v[8 - i]) & 0x3f];
        }
        w[8] = 0;
        strcpy(outbuf, w);
        return;
}


ich hatte schon angefangen, aber sicher falsch, so sah meins aus *g*:

Delphi-Quellcode:
procedure apgar(pw, apg: string);
begin

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  pass: string;
  apgard: string[9];
begin
  pass := Edit1.text;
  apgar(pass, apgard);
end;
also wäre echt nett wenn jemand diesen C Source s.o in delphi source umwandeln könnte. Ich les jetzt erstmal luckies DLL Tutorial, bis später

Robert Marquardt 12. Jan 2004 06:47

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
Ich kopier mir mal das Zeug und denke genauer drueber nach.
Das ist wirklich ein freches Stueck Code.
for ist in Delphi nicht moeglich fuer diesen Algorithmus, denn die Laufvariable wird veraendert.

Pseudemys Nelsoni 12. Jan 2004 07:00

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
hoffe das das in Delpjhi möglich ist :oops:

das ist nämlich das teil das meine passwörter "encryptet"

Robert Marquardt 12. Jan 2004 07:22

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
Es scheint ein Fehler im C Sourcecode zu sein.
w[i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ0123456789./"([a & 1 ? a << (a & 1) & v[8 - i] : a ^ v[8 - i]) & 0x3f];
ist unsinnig, denn es wird nicht an w zugewiesen.
Ich nehme an es heisst
w[i] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ0123456789./"([a & 1 ? a << (a & 1) & v[8 - i] : a ^ v[8 - i]) & 0x3f;

Mit dieser Annahme geht es mit einem for-loop.

Delphi-Quellcode:
procedure apgar(V: PChar; Outbuf: PChar);
const
  Encoding = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./';
var
  W: array [0..8] of Char;
  I: Integer;
  A: Integer;
begin
  for I := 0 to 7 do
  begin
    A := Integer(V[I]);
    // a & 1 ?
    if Odd(A) then
      W[I] := Encoding[(a shl ((a and 1) and V[8-I])) and $3F]
    else
      W[I] := Encoding[(a xor V[8-I]) and $3F];
  end;
  Move(W[0], Outbuf[0], 8);
end;
Bitte pruefe die C-Source nochmal.

Robert Marquardt 12. Jan 2004 07:25

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
Eh natuerlich sollte es in C
w[i] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ0123456789./"([a & 1 ? a << (a & 1) & v[8 - i] : a ^ v[8 - i]) & 0x3f];
heissen, denn es fehlt ja eine eckige Klammer.

Robert Marquardt 12. Jan 2004 07:33

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
...und noch zwei Fehler. Diesmal bei mir.
Delphi-Quellcode:
procedure apgar(V: PChar; Outbuf: PChar);
const
  Encoding = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./';
var
  W: array [0..8] of Char;
  I: Integer;
  A: Integer;
begin
  for I := 0 to 7 do
  begin
    A := Integer(V[I]);
    // a & 1 ?
    if Odd(A) then
      W[I] := Encoding[((a shl ((a and 1) and V[8-I])) and $3F)+1]
    else
      W[I] := Encoding[((a xor V[8-I]) and $3F)+1];
  end;
  W[8] := #0;
  Move(W[0], Outbuf[0], 8);
end;

Pseudemys Nelsoni 12. Jan 2004 08:06

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
hoi robert,

das sieht ja wirklich gut aus :cyclops:


kanst du mir noch sagen was ich an die 2 PChars übergeben muss? 1mal das passwort und noch?
dann könnt ich es mal ausprobieren :zwinker:

Nightshade 12. Jan 2004 08:28

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
Hallöle..

Delphi-Quellcode:
procedure apgar(V: PChar; Outbuf: PChar);
Das sieht für mich so aus, als ob V das Password ist, und über Outbuf gibt er dir das Password verschlüsselt zurück.


PS. Kann es sein, das es :
Delphi-Quellcode:
procedure apgar(V: PChar; var Outbuf: PChar);
heissen muss ?

Robert Marquardt 12. Jan 2004 08:40

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
@Nightshade: Nein, da es ja ein Zeiger ist.

Delphi-Quellcode:
var
   pass: PChar;
   apgard: array [0..8] of Char;
begin
   // es sollten mindestens 8 Zeichen sein!
   pass := '12345678';
   apgar(pass, @apgard[0]);
   // in apgard sollte jetzt das verschluesselte Passwort stehen

Pseudemys Nelsoni 12. Jan 2004 08:56

Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
 
ich bekomme in dieser zeile einen fehler

Delphi-Quellcode:
W[I] := Encoding[((a shl ((a and 1) and V[8-I])) and $3F)+1]

Zitat:

[Fehler] Unit1.pas(40): Operator ist auf diesen Operandentyp nicht anwendbar
[Fehler] Unit1.pas(42): Operator ist auf diesen Operandentyp nicht anwendbar
[Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz