Implementieren Sie diese Schlüsselverschlüsselung
Tor
Verwenden Sie den im Abschnitt Algorithmus erläuterten Algorithmus, um eine bestimmte Verschlüsselung zu implementieren.
Das Programm muss Eingaben von STDIN oder dem nächstgelegenen verfügbaren Äquivalent lesen und den Algorithmus verwenden, um den Chiffretext und einen Schlüssel zu generieren.
Der Chiffretext und der Schlüssel werden in STDOUT oder das nächste verfügbare Äquivalent geschrieben. Jedes Format ist zulässig, solange es den Chiffretext und den Schlüssel ausgibt.
Algorithmus
Konvertieren Sie die Zeichen in der Zeichenfolge in die entsprechenden ASCII-Werte. Beispielsweise:
Hello -> 72 101 108 108 111
Als Nächstes müssen Sie einen Schlüssel generieren, solange die Zeichenfolge Zufallszahlen im Bereich von 0 bis 9 enthält.
Hello -> 62841
Fügen Sie die Ganzzahlen in der Zufallszahlenfolge zu den ASCII-Werten der Zeichenfolge hinzu. In den obigen Beispielen würde 72 zu 78 und 101 zu 104 werden.
72 + 6 = 78, 101 + 2 = 103, 108 + 8 = 116, etc
Als nächstes konvertieren Sie die neuen Werte zurück in Zeichen. In den obigen Beispielen ist der Text Hello
geworden Ngtpp
.
Beispiele
(Dies sind lediglich Beispiele dafür, wie die Ausgabe aussehen könnte . Die Ausgabe kann und wird variieren.)
Hello World
Lfrlu)_supg
41606984343
This will be encoded
Zhjs$~koo gj$iuhofgj
60104723305544750226
Regeln
- Sie können davon ausgehen, dass die Eingabe nur Zeichen im Bereich von az, AZ und Leerzeichen enthält.
- Einsendungen müssen vollständige Programme oder Funktionen sein.
- Einsendungen werden in Bytes gewertet.
- Standardlücken sind verboten.
- Das ist Code-Golf, also gewinnt der kürzeste Code.
(Dies ist eine meiner ersten Herausforderungen. Wenn etwas nicht stimmt, können Sie mir gerne mitteilen, wie ich es verbessern kann.)
preferably with the format (ciphertext)\n(key).
"Bevorzugte Features" und Code-Golf passen nicht gut zusammen. Sie sollten dies verbindlich festlegen oder andere Ausgabeformate zulassen. 3. Muss der Schlüssel ohne Leerzeichen gedruckt werden? Was ist mit dem Drucken im Listenformat, zB[0, 5, 2, ...]
?