Verschlüsselung
-
besten dank erstmal. habe mir das mal ein bisschen angeschaut.
bin nun auf folgendes resultat mit root 47 gekommen:
for(stringstelle = 1; stringstelle < enter_len; stringstelle++) { // Wenn der Ascii-Wert kleiner als 80 ist + 47 zählen if(text[stringstelle] < 80) { // Alter String in einen neuen schreiben newtext[stringstelle] = text[stringstelle] + 47; } else { // Wenn der Wert nun grösser als 126 ist, eifach differenz Wert von 33 erhöhen newtext[stringstelle] = 33 + (-127 + text[stringstelle] + 47); } }
nun zu meiner frage. wie kann ich diesen teil text[stringstelle] in einen int wandeln? sprich einfach sting in ascii-dezimal..
-
Hallo
bin nun auf folgendes resultat mit root 47 gekommen:
Das soll wohl eher ROT 47 heißen, für Rotation.
wie kann ich diesen teil text[stringstelle] in einen int wandeln?
int ascii = text[stringstelle];
bis bald
akari
-
besten dank. das funktioniert erstmal.ja wollte eigentlich rot47 schreiben..
// Stringstellen (ASCII Dezimal) um 47 erhöhen for(stringstelle = 1; stringstelle < enter_len; stringstelle++) { // Wenn der Ascii-Wert kleiner als 80 ist + 47 zählen if(text[stringstelle] < 80) { // Alter String in einen neuen schreiben ascii = text[stringstelle]; newtext[stringstelle] = ascii + 47; } else { // Wenn der Wert nun grösser als 126 ist, eifach differenz Wert von 33 erhöhen ascii = text[stringstelle]; newtext[stringstelle] = 33 + (-127 + ascii + 47); } }
Wie kann ich nun den Int-Wert in einen ASCII-Wert wandeln? IntToStr()geht ja mal logischerweise nicht.. Eine Funktion um Int to ASCII zu wandeln, habe ich irgendwie auch nicht gefunden. Gibt es da eine Möglichkeit?
-
Hallo
Was ist für dich den ein "ASCII-Wert"? Doch wohl offensichtlich eine ganze Zahl. Und Zahlen werden in ints gespeichert. Also brauchst du keine Umwandlung von int nach "ASCII"bis bald
akari
-
naja ich will ja dann den Int-Wert in einen String wandeln. Sprich nach der ASCII-Tabelle gäbe ja dann 90 -> Z
habe mich wohl falsch ausgedrückt.
sprich ascii + 47 geben einen wert zusammen. eben z.b 90 und nun muss ich irgendwie aus 90 den String Z rausbekommen.
newtext[stringstelle] = ascii + 47;
hoffe ist nun verständlich genug geschrieben.
-
Hallo
newtext[stringstelle] = ascii + 47;
und was hindert dich, genau das einmal auszuprobieren?
bis bald
akari
-
akari schrieb:
Hallo
newtext[stringstelle] = ascii + 47;
und was hindert dich, genau das einmal auszuprobieren?
bis bald
akarihm, da kommt bei mir eine Fehlermeldung.. Exception in der Klasse ERangeError.. Meldung: ". Prozess wurde angehalten....
-
Hallo
das ist also ein Laufzeit-Fehler.
Und die besagt das dein stringstelle außerhalb des gültigen Bereichs ist, der von 1 bis newtext.Length() geht. Also setzte deinen Debugger ein und finde den Grund dafür.
Mit der Umwandlung an sich hat das nichts zu tun.bis bald
akari
-
String Tfrmmain::func_readstring(String text, int rotart) { unsigned int stringstelle; unsigned int string_len; unsigned int ascii; String newtext; string_len = text.Length(); if(rotart == 47) { // Stringstellen (ASCII Dezimal) um 47 erhöhen for(stringstelle = 1; stringstelle < string_len; stringstelle++) { // Wenn der Ascii-Wert kleiner als 80 ist + 47 zählen if(text[stringstelle] < 80) { // Alter String in einen neuen schreiben ascii = text[stringstelle]; newtext[stringstelle] = ascii + 47; } else { // Wenn der Wert nun grösser als 126 ist, eifach differenz Wert von 33 erhöhen ascii = text[stringstelle]; newtext[stringstelle] = 33 + (-127 + ascii + 47); } } } else if(rotart == 5) { // } }
das ist mal mein Code. Also sobald ich das:
newtext[stringstelle] = ascii + 47;
durch dieses hier
text[stringstelle] = ascii + 47;
ersetze dann funktionier das ganze..Wie kann den das sein? newtext ist ein String und text ist auch ein String.. Sehe den Fehler oder das Problem überhaupt nicht..
-
Hallo
ja beide sind vom Typ String. Aber im Gegensatz zu text ist newtext leer. Das heißt die Länge von newtext ist 0.
Am einfachsten ist es wenn du am Anfang einfach den Inhalt und damit auch die Länge kopierst.String newtext = text;
bis bald
akari
-
ok besten dank. funktioniert nun bestens so.
für andere: hatte noch ein fehler in der for-Anweisung
for(stringstelle = 1; stringstelle < string_len + 1; stringstelle++)
-
Hallo
ja stimmt. Ich würde es aber lieber so schreiben
for(stringstelle = 1; stringstelle <= string_len; stringstelle++)
bis bald
akari
-
Stringfunktionen sind für Verschlüsselungsalgorithmen völlig ungeeignet, da alle bei einem Zeichen mit dem Inhalt 0x00 den Dienst beenden....