Здесь я в то же время изучаю питон и криптографию. Просто для удовольствия. Ой! счастливчик.
Итак, вчера я читал о знаменитых криптографических методах вдоль истории, каковы были цели и как они изменились в современное время. Некоторые из них, где действительно простое … Но вы знаете, что они говорят, «когда решается головоломка, легко понять».
Поэтому я читал про Юлиус Цезарь и это крипто-метод для личной коррессии. (Вы знали об этом? Потому что я не.)
Этот метод действительно прост, и он основан в виде замещения. В этом случае каждый символ в алфавите получает число от 0 до 25:, ….
Теперь вы получаете номер от 0 до 25, который будет назван как «ключ» и получите сообщение для ECNRYPT: я буду использовать номер 7 как «ключ», и это сообщение: «Эти римляны сумасшедшие!» (Да, это от комиксов Asterix). Так…
Вот так:
Key: 7 Raw: "These Romans are crazy!" Enc: "AOLZL YVTHUZ HYL JYHGF!"
Это означает, что и. «Оригинальный» алфавит был «перемещен» 7 позиций назад:
T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | Шифр |
С этим скриптом вы можете проверить это, чтобы шифровать:
#!/usr/bin/env python3 message = "Klaatu Barada Nitko." key = 7 LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" mode = "encrypt" # set to 'encrypt' or 'decrypt' translated = "" message = message.upper() # run the encryption/decryption code on each symbol in the message string for symbol in message: if symbol in LETTERS: num = LETTERS.find(symbol) # get the number of the symbol if mode == "encrypt": num = num + key elif mode == "decrypt": num = num - key if num >= len(LETTERS): num = num - len(LETTERS) elif num < 0: num = num + len(LETTERS) translated = translated + LETTERS[num] else: translated = translated + symbol print(translated)
И Это один, чтобы расшифровать:
#!/usr/bin/env python3 message = "RSHHAB IHYHKH UPARV!" LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" for key in range(len(LETTERS)): translated = "" for symbol in message: if symbol in LETTERS: num = LETTERS.find(symbol) num = num - key if num < 0: num = num + len(LETTERS) translated = translated + LETTERS[num] else: translated = translated + symbol print("Key #%s: %s" % (key, translated))
Вы можете найти эти скрипты и более полезную информацию в этой книге:
Title: Hacking Secret Ciphers with Python Author: Al Sweigart ISBN: 978-1482614374
Радоваться, веселиться!
Оригинал: “https://dev.to/cosckoya/what-i-learned-today-caesar-cipher-1l71”