Gausi - Sa 02.12.06 13:35
Titel: Sammelthread für Rot13-Projekte
Da das Ankündigungstopic fürs Adventsgewinnspiel 2006 jetzt auch in entschlüsselter Form vorliegt, können jetzt in diesem Topic Lösungsprogramme für die Entschlüsselung vorgestellt werden.
Viele werden es ja mittlerweile erkannt haben, dass die verwendete Verschlüsselung als Rot13 bekannt ist. Diese funktioniert einfach so, dass die Buchstaben im Alphabet um 13 Stellen verschoben werden:
Quelltext
1: 2:
| aus abcdefghijklmnopqrstuvwxyz wird nopqrstuvwxyzabcdefghijklm |
Bei den Großbuchstaben entsprechend. Der "Vorteil" bei dieser Verschlüsselung ist die Symmetrie. Zum Ver- und Entschlüsseln kann dasselbe Verfahren verwendet werden.
Diese (sehr schwache) Verschlüsselung ist recht weit verbreitet. Es gibt Addons für den
Firefox [
https://addons.mozilla.org/firefox/770/], oder
Webseiten [
http://rot13.de], wo man seine Texte verschlüsseln kann, und wahrscheinlich tausende von Programmen dazu.
Im Anhang ist ein kleines Rot13-Programm für Delphi (Win32). Mit diesem Programm lassen sich die meisten Beiträge
in diesem Thread [
http://www.delphi-forum.de/viewtopic.php?t=67082] lesen.
Wer andere Lösungsmöglichkeiten oder solche mit erweiterten Features posten möchte, kann das gerne (entgegen der sonst üblichen Regel "nur ein Programm pro Thread") hier tun.
delfiphan - Mo 04.12.06 03:37
Verbesserungsvorschläge zum Code:
1. Lesbarkeit erhöhen: ord('A') statt 65, etc.
2. Case-Statement statt zwei if mit in.
Delphi-Quelltext
1: 2: 3: 4: 5:
| for I := 1 to Length(AString) do case AString[I] of 'A'..'Z': AString[I] := chr((ord(AString[I])-ord('A')+13) mod 26+ord('A')); 'a'..'z': AString[I] := chr((ord(AString[I])-ord('a')+13) mod 26+ord('a')); end; |
PS: Wenn man schon mit Zahlen rechnet: 65 mod 26 gibt 13, könnte man ausnützen. ;)