Das Erstellen eines Golf13 Rot13-Verschlüsselers ist zu einfach, da die Buchstaben im ASCII-Zeichenbereich alle dieselbe Reihenfolge haben. Versuchen wir stattdessen einen rot32-Motor.
Ihre Aufgabe besteht darin, eine Funktion zu erstellen, die eine Base64-Zeichenfolge als Eingabe verwendet und dieselbe Zeichenfolge zurückgibt, wobei jedoch mit jedem Buchstaben 32 Symbole gegenüber dem Original gedreht werden (im Wesentlichen mit dem ersten umgedrehten Bit).
Die Base64 - Kodierung Zeichenfolge verwendet für dieses Problem ist , 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/
mit einer Polsterung Charakter =
. Dies soll verhindern, dass Lösungen eine integrierte Base64-Bibliothek verwenden oder importieren, bei der Zeichenfolgen normalerweise mit A
statt beginnen 0
.
Example inputs and outputs:
> rot32("THE+QUICK+BROWN+FOX+JUMPS+OVER+THE+LAZY+DOG=")
nb8ukoc6eu5liqhu9irudogjmuip8lunb8uf4tsu7ia=
> rot32("NB8UKOC6EU5LIQHU9IRUDOGJMUIP8LUNB8UF4TSU7IA=")
h5Eoei6C8oBfckboFclo7iadgocjEfoh5Eo9AnmoDc4=
> rot32("Daisy++daisy++give+me+your+answer+true/I+/+m+half+crazy++all+for+the+love+of+you")
7GOY2uuJGOY2uuMO/KuSKu2U+XuGTY0KXuZX+KvcuvuSuNGRLuIXG32uuGRRuLUXuZNKuRU/KuULu2U+
Das kürzeste Programm in einer Sprache gewinnt.
Antworten:
CJam, 24 Bytes
Probieren Sie es online aus.
Wie es funktioniert
quelle
Bash / Unix-Shell, 29
Eingabe von STDIN, Ausgabe von STDOUT.
quelle
Perl, 41
Nur eine einfache Transliteration . Liest von STDIN, gibt an STDOUT aus:
Probieren Sie es hier aus.
quelle
-p
und-e
Befehlszeilenoptionen , um loszuwerden, das$_=<>;
und das;print
.CJam,
45 41 38 29 2726 BytesLiest die zu verschlüsselnde Zeichenfolge von STDIN
Wie es funktioniert :
Probieren Sie es hier online aus
quelle
Python, 178
Dies ist eine ungolfed Referenzimplementierung an letzter Stelle in Python, mit der Sie Ihre eigene Implementierung testen können.
quelle
GolfScript (
4140 Bytes)Online-Demo
Dies besteht aus zwei Teilen: Die Übersetzung ist eine Variante der letzten Technik, die in meinem Tipp
tr
in GolfScript erwähnt wurde , und der andere Teil ist die Zeichenfolgenerstellung, bei der die Zeichenfolge0:a{A[
als Array von Zeichenwerten und als Falte verwendet wird, um sie umzuwandeln Zeichenbereiche. Beachten Sie die Verwendung von32/(*
, um die übersetzte Zeichenfolge zu erstellen, indem Sie die ersten 32 Zeichen zwischen die zweiten 32 Zeichen und das zu übersetzende Zeichen einfügen.quelle
Python, 69
Tests
quelle
LiveScript, 91
LiveScript, 50
Wenn die Zeichenfolge als zweites Argument zulässig ist.
quelle
JavaScript 164
quelle