Как реализовать ROT13 в строке, используя код Python для демонстрации шифрования строки? - PullRequest
0 голосов
/ 22 октября 2019

: ROT13 - это слабая форма шифрования, которая включает в себя «ротацию» каждой буквы в слове на 13 мест. Поворот буквы означает перемещение по алфавиту, при необходимости перенося его в начало, поэтому «A», сдвинутый на 3, означает «D», а «Z», сдвинутый на 1, - «A». Напишите код Python, чтобы продемонстрировать шифрование строк с помощью ROT13. Это то, что я пытался. Он работает, но когда я ввожу любой алфавит, он дает мне ошибку неопределенного

    def rot13(s):
Alphabets="ABCDEFGHIJKLMNOPQRSTUVWEXYZ"
type (Alphabets)
Rotate=Alphabets[13:]+ Alphabets[:13]
Reus= lambda a: Rotate[Alphabets.find(a)]
if Alphabets.find(a)>-1:
else: s
return ''.join(Reus(a) for a in s)
rot13('rageofbahamut')

1 Ответ

0 голосов
/ 23 октября 2019

Это будет зашифровано с использованием ROT13. Или любое другое значение вращения, которое вы хотите использовать.

alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

def encrypt(plain, rot):
    cipherText = ''

    for letter in plain:
        if letter in alphabet:
            cipherIndex = (alphabet.index(letter) + rot) % 26 # This handles the wrap around
            cipherText = cipherText + alphabet[cipherIndex]
        else:
            cipherText = cipherText + letter # Non alphabet characters are just appended.
    return cipherText

plain = 'HELLO WORLD'
rot = 13 # In case you want to change it
print encrypt(plain,rot)
...