Entwickler-Ecke

Open Source Projekte - Sammelthread für Rot13-Projekte


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.


Coder - Sa 02.12.06 14:39

Ich hab die Cäsarverschlüsselung benutzt :wink:
Kann man hier online decodieren.
http://weddige.eu/tools/kryptix/

MfG


GTA-Place - Sa 02.12.06 14:40

Rot13 = Cäsar um 13 Stellen verschoben.


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')+13mod 26+ord('A'));
      'a'..'z': AString[I] := chr((ord(AString[I])-ord('a')+13mod 26+ord('a'));
    end;

PS: Wenn man schon mit Zahlen rechnet: 65 mod 26 gibt 13, könnte man ausnützen. ;)