Verschlüsselung funzt nicht auf anderem rechner
-
Wenn der Hinweg mit Multiplikation arbeitet, müßte der Rückweg normalerweise mit Division arbeiten!
7 * 3 = 21
aber
21 * 3 != 7
Es mag sein, daß bei Dir andere Zahlen verwendet werden, aber das Prinzip bleibt gleich.
-
Sag mal, bist Du eigentlich sicher, daß Du nicht
outstr[i] = (instr[i] ^ i) * (i ^ pass[i]);meinst?
-
Das Zirkumflex wird, wenn ich mich recht entsinne, als bitweises Exklusiv-Oder verwendet, oder?
-
@Andi
So ist es
-
Hallo,
der code ist so wie ich ihn geschrieben habe, Division klingt logisch, aber warum geht das dann auf meinem Notebook und auf meine großen PC nicht???Gruß
-
Aaah,zumindest sehe ich jetzt endlich, was Du machst (vor die Stirn klatsch) ... Du errechest i zum Quadrat und XORst das mit dem jeweiligen Buchstaben aus Quelltext und Schlüssel. Das läßt sich dann in der Tat zurückrechnen, es sei denn, Du hast mehr als 16 Zeichen. Ab dem 17. kommst Du dann in den Bereich > 255. Da macht char dann Schippschnapp und das läßt sich nicht mehr zurückrechnen.
Ich gehe mal davon aus, daß outstr und instr auch vom Typ char* sind (zeig doch mal bitte, wie die deklariert sind).PS: Warum es auf dem einen Rechner läuft, auf dem anderen aber nicht, kann ich allerdings auch nicht sagen .... Magie???
-
Hallo,
instr und outstr sind vom typ char*!
Ach pass ist länger als 16 zeichen, werde nachher mal probieren mit weniger.Gruß
-
daniel23 schrieb:
(...) aber warum geht das dann auf meinem Notebook und auf meine großen PC nicht???
Mal eine korrekte Initialisierung aller Variablen vorausgesetzt :
Benutzen beide Rechner den gleichen Zeichensatz, die gleiche Umgebung ?
-
Hallo,
beide Rechner sind gleich.
Habe es in zwischen hin bekommen, ich habe pass auf 16 zeichen gesetzt und es funzt, auch mit längeren Strings, wenn ich pass < 16 Zeichen setze dann werden nur so viel Zeichen ver- entschlüsselt wie pass zeichen hat, komisch!?
Danke, an alle die mir geholfen haben!Gruß
-
Aber warum läuft es dann auf dem einen und auf dem Anderen nicht?