Zaimplementuj ten klucz szyfrujący
Cel
Użyj algorytmu (wyjaśnionego w sekcji Algorytm), aby zaimplementować określony szyfr.
Program musi odczytać dane wejściowe ze STDIN lub najbliższego dostępnego odpowiednika, użyć algorytmu do wygenerowania tekstu zaszyfrowanego i klucza.
Tekst zaszyfrowany i klucz zostaną zapisane w STDOUT lub najbliższym dostępnym odpowiedniku. Dowolny format jest dozwolony, o ile wyprowadza tekst zaszyfrowany i klucz.
Algorytm
Konwertuj znaki w ciągu na odpowiednie wartości ASCII. Na przykład:
Hello -> 72 101 108 108 111
Następnie musisz wygenerować klucz tak długi, jak ciąg z liczbami losowymi w zakresie 0–9.
Hello -> 62841
Dodaj liczby całkowite w losowej sekwencji liczb do wartości ASCII ciągu. W powyższych przykładach 72 zmieniłoby się na 78, a 101 na 104.
72 + 6 = 78, 101 + 2 = 103, 108 + 8 = 116, etc
Następnie przekonwertuj nowe wartości z powrotem na znaki. W powyższych przykładach tekst Hello
stał się Ngtpp
.
Przykłady
(Są to tylko przykłady tego, jak może wyglądać wydruk. Wyjście może i będzie się różnić).
Hello World
Lfrlu)_supg
41606984343
This will be encoded
Zhjs$~koo gj$iuhofgj
60104723305544750226
Zasady
- Możesz założyć, że dane wejściowe będą zawierać tylko znaki z zakresu az, AZ i spacji.
- Zgłoszenia muszą być pełnymi programami lub funkcjami.
- Zgłoszenia będą oceniane w bajtach.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc wygrywa najkrótszy kod.
(To jedno z moich pierwszych wyzwań, jeśli coś jest nie tak, możesz mi powiedzieć, jak mogę to poprawić).
preferably with the format (ciphertext)\n(key).
„preferowane funkcje” i golf golfowy nie mieszają się zbyt dobrze. Powinieneś uczynić to obowiązkowym lub zezwolić na inne formaty wyjściowe. 3. Czy klucz musi być wydrukowany bez spacji? A co z wydrukowaniem go np. W formie listy[0, 5, 2, ...]
?