![]() |
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:
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
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; |
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. |
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" |
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:
Bitte pruefe die C-Source nochmal.
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; |
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. |
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; |
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: |
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
Hallöle..
Delphi-Quellcode:
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.
procedure apgar(V: PChar; Outbuf: PChar);
PS. Kann es sein, das es :
Delphi-Quellcode:
heissen muss ?
procedure apgar(V: PChar; var Outbuf: PChar);
|
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 |
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:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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 by Thomas Breitkreuz