Also, ich habe einen string. Darin ist ein text, der verschlüsselt werden soll.
Das stelle ich mor so vor:
Den string in eine zahl umwandeln
dann mit dieser zahl eine mathemathische rechnung machen,
sodass dann eine veränderte zahl herauskommt.
Und wie kann ich eben diesen text in eine zahl umwandeln?
Hexadezimal oder dual oder so?
Es gibt zahlreiche Verschlüsselungsmethoden. Was du hier angibst, ist jedoch nicht wirklich eine Verschlüsselungsmethode, sondern eine einfache Umwandlung von Buchstaben in entsprechende Zahlen. Ein String ansich ist nicht sinnvoll in eine Zahl umzuwandeln, um daraus später wieder den String zu erstellen. Du hast je 26 Groß- und Kleinbuchstaben, zwei mal drei Umlaute, das ß und zahlreiche Buchstaben mit Apostroph und ähnlichen Zeichen wie z.B. á und È usw. Wenn du jetzt einfach den Ordinalwert dieser Buchstaben zu einer Zahl zusammensetzt, z.B. 'Auto' ergäbe 65117116111, kannst du nicht wissen, ob eine Zahl aus zwei oder drei Ziffern besteht. Daher eignet sich dieser Algorithmus nicht dafür, Strings verschlüsselt zu speichern.
Warte wat? Da muss ich dir leider widersprechen!
Wenn man beispiels- & einfachheitshalber von AnsiStrings ausgeht, wo jedes Zeichen (Char) genau ein Byte groß ist, dann kann man die einzelnen Bytes als Zahlen interpretieren (anstatt Zeichen), damit mathematisch Unfug treiben und dann beliebig weiter damit rumhantieren!
Hier eine einfache Xor Verschlüsslung z.B.
Delphi-Quellcode:
procedure xorCrypt(var Str: String; const XorVal: Byte);
var
i: Integer;
begin
for i := 1 to Length(Str) do
Str[i] := Byte(Str[i]) xor XorVal;
end;
Vlt. bezieht sich deine Aussage auf "ord()" welche letztendlich einen Ordinalwert zurückgibt, was im Grunde auch nur eine Zahl ist (nicht?)!
Edit: "Auto" ergibt übrigens nicht 65117116111, sondern 65 117 116 111 (man weiß ganz genau, wo die Zahl aufhört und wo sie beginnt!)