Рубрики
Без рубрики

Что я узнал сегодня? : Caesar шифр

Здесь я в то же время изучаю питон и криптографию. Просто для удовольствия. Ой! счастливчик. Итак, вчера … Tagged Security, Python, программирование.

Здесь я в то же время изучаю питон и криптографию. Просто для удовольствия. Ой! счастливчик.

Итак, вчера я читал о знаменитых криптографических методах вдоль истории, каковы были цели и как они изменились в современное время. Некоторые из них, где действительно простое … Но вы знаете, что они говорят, «когда решается головоломка, легко понять».

Поэтому я читал про Юлиус Цезарь и это крипто-метод для личной коррессии. (Вы знали об этом? Потому что я не.)

Этот метод действительно прост, и он основан в виде замещения. В этом случае каждый символ в алфавите получает число от 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”