• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Шифр цезаря

pro194

Green Team
30.06.2017
41
63
Мне встретилась задача с зашифрованым сообщением "шифром Цезаря"
Нашел хороший пример кодирования и декодирования:

Код:
L2I = dict(zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ",range(26)))
I2L = dict(zip(range(26),"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))

key = 3
plaintext = "DEFEND THE EAST WALL OF THE CASTLE"
Код:
# encipher
ciphertext = ""
for c in plaintext.upper():
if c.isalpha(): ciphertext += I2L[ (L2I[c] + key)%26 ]
else: ciphertext += c

# decipher
plaintext2 = ""
for c in ciphertext.upper():
if c.isalpha(): plaintext2 += I2L[ (L2I[c] - key)%26 ]
else: plaintext2 += c

print(plaintext)
print(ciphertext)
print(plaintext2)

(С)
 
Мне встретилась задача с зашифрованым сообщением "шифром Цезаря"
Нашел хороший пример кодирования и декодирования:

Код:
L2I = dict(zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ",range(26)))
I2L = dict(zip(range(26),"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))

key = 3
plaintext = "DEFEND THE EAST WALL OF THE CASTLE"
Код:
# encipher
ciphertext = ""
for c in plaintext.upper():
if c.isalpha(): ciphertext += I2L[ (L2I[c] + key)%26 ]
else: ciphertext += c

# decipher
plaintext2 = ""
for c in ciphertext.upper():
if c.isalpha(): plaintext2 += I2L[ (L2I[c] - key)%26 ]
else: plaintext2 += c

print(plaintext)
print(ciphertext)
print(plaintext2)

(С)

Разве не лучше использовать ord и chr ?

Python:
def code(string, key=3):
    return ''.join([chr(ord(i)+key) for i in string])
    
def decode(string, key=3):
    return ''.join([chr(ord(i)-key) for i in string])
 
  • Нравится
Реакции: Ванек
Я .... немного ничего не понял.
почитай


Мне встретилась задача с зашифрованым сообщением "шифром Цезаря"
Нашел хороший пример кодирования и декодирования:
В приведённом коде ошибки - отсутствуют отступы перед if

Правильный код таким будет:


Python:
L2I = dict(zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ",range(26)))
I2L = dict(zip(range(26),"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))

key = 3
plaintext = "DEFEND THE EAST WALL OF THE CASTLE"

# encipher
ciphertext = ""
for c in plaintext.upper():
    if c.isalpha(): ciphertext += I2L[ (L2I[c] + key)%26 ]
    else: ciphertext += c

# decipher
plaintext2 = ""
for c in ciphertext.upper():
    if c.isalpha(): plaintext2 += I2L[ (L2I[c] - key)%26 ]
    else: plaintext2 += c

print(plaintext)
print(ciphertext)
print(plaintext2)
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD