![]() |
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:
|
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
Versuch mal
Delphi-Quellcode:
und
W[I] := Encoding[((a shl ((a and 1) and Integer(V[8-I]))) and $3F)+1]
Delphi-Quellcode:
W[I] := Encoding[((a xor Integer(V[8-I])) and $3F)+1]
|
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
hoi,
wow das geht schon FAST :) nochmal eine frage, wenn ich in meinem tool jetzt "02580258" encrypte, ist das ergebnis "WkQkakQk" also die Q's stimmen irgendwie nicht, das ergebnis müsste "WkGkakGk" sein, weisst du noch wo da der fehler liegt? in dem code kenn ich mich nicht so aus :( danke für alles btw :) |
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
Da bin ich gerade ueberfragt und nicht in Stimmung mich reinzuknien.
Versuch mal Cardinal statt Integer bei der Umtypung. Ansonsten morgen. |
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
hoi, ne auch mit Cardinal geht es nicht :\
Aber das mit morgen trifft sich gut, ich muss nämlich langsam mal ins bett, de ganze letzte nacht durchgemacht mit delphi :mrgreen: btw, falls du morgen nochmal vorbeischaust, guck dir mal aus meinem anderem thread die datei hier an: ![]() die macht genau das wie es aussehen sollte, also die egerbnisse :) danke für alles schonmal gute "nacht" :zwinker: |
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
Tut mir leid ich habe kein RAR.
|
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
Liste der Anhänge anzeigen (Anzahl: 1)
hier als Zip im anghang
|
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
So, hab mal verglichen, warum alle anderen ausser den Gs (Qs) richtig sind.
Der Unterschied ist, das bei Ord(V[I]) bzw. Integer(V[I]) bei den falschen eine ungerade Zahl ist, das heisst es stimmt was bei der oberen Formel nicht. Edit: Habs raus, eine Klammer war zu viel:
Delphi-Quellcode:
W[I] := Encoding[ ( ( a shl (a and 1) and Ord(V[8-I]) ) and $3F )+1 ];
|
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
daaaanke euch beiden, jetzt funktionierts wie es soll :)
|
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
Da merkt man wie man durch Pascal versaut wird ;-)
Da laesst mein C doch tatsaechlich nach. Dabei ist es die endeuting interessntere Sprache. |
Re: Kann mir jemand diesen C++ Code in Delphi umwandeln?
"versaut"... nun mach delphi mal nicht so schlecht :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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