🔍 Как эффективно расшифровать текст в Python: пошаговая инструкция 🔍
# Пример 1: Шифр Цезаря
def decrypt_cesar_cipher(text, shift):
decrypted_text = ""
for char in text:
if char.isalpha():
ascii_val = ord(char.lower())
decrypted_ascii_val = (ascii_val - shift - 97) % 26 + 97
decrypted_char = chr(decrypted_ascii_val)
decrypted_text += decrypted_char
else:
decrypted_text += char
return decrypted_text
# Пример использования:
encrypted_text = "хвгд фзообшпд"
decryption_shift = 3
decrypted_text = decrypt_cesar_cipher(encrypted_text, decryption_shift)
print(decrypted_text)
# Пример 2: Шифр Виженера
def decrypt_vigenere_cipher(text, key):
decrypted_text = ""
key_length = len(key)
for i, char in enumerate(text):
if char.isalpha():
ascii_val = ord(char.lower())
key_char = key[i % key_length]
key_val = ord(key_char.lower())
decrypted_ascii_val = (ascii_val - key_val - 97) % 26 + 97
decrypted_char = chr(decrypted_ascii_val)
decrypted_text += decrypted_char
else:
decrypted_text += char
return decrypted_text
# Пример использования:
encrypted_text = "шяуёэ урщапюыъ"
decryption_key = "ключ"
decrypted_text = decrypt_vigenere_cipher(encrypted_text, decryption_key)
print(decrypted_text)
Надеюсь, эти примеры помогут вам расшифровать текст в Python.
Детальный ответ
Как расшифровать текст в Python
Расшифровка текста - это процесс преобразования зашифрованного текста обратно в исходный текст с использованием определенного алгоритма или ключа. В Python существует несколько способов расшифровки текста, в зависимости от используемого типа шифрования. В этой статье мы рассмотрим несколько наиболее популярных методов расшифровки текста в Python и предоставим вам примеры кода для каждого из них.
1. Расшифровка текста с использованием шифра Цезаря
Один из самых простых методов расшифровки текста - использование шифра Цезаря. В этом методе каждая буква в зашифрованном тексте заменяется другой буквой на фиксированное количество позиций в алфавите.
def caesar_decrypt(ciphertext, shift):
plaintext = ""
for char in ciphertext:
if char.isalpha():
ascii_offset = ord('A') if char.isupper() else ord('a')
decrypted_char = chr((ord(char) - ascii_offset - shift) % 26 + ascii_offset)
plaintext += decrypted_char
else:
plaintext += char
return plaintext
ciphertext = "VQREQFGT"
shift = 2
decrypted_text = caesar_decrypt(ciphertext, shift)
print(decrypted_text)
В этом примере функция caesar_decrypt
принимает зашифрованный текст и сдвиг как параметры. Она проходит по каждому символу в зашифрованном тексте и применяет обратное преобразование с помощью алгоритма шифра Цезаря. Расшифрованный текст выводится на экран.
2. Расшифровка текста с использованием шифра Виженера
Шифр Виженера - это метод шифрования, который использует ключевое слово и несколько таблиц алфавитов для посимвольного шифрования и расшифровки текста.
def vigenere_decrypt(ciphertext, key):
plaintext = ""
key_length = len(key)
for i, char in enumerate(ciphertext):
if char.isalpha():
ascii_offset = ord('A') if char.isupper() else ord('a')
decrypted_char = chr((ord(char) - ascii_offset - (ord(key[i % key_length]) - ascii_offset)) % 26 + ascii_offset)
plaintext += decrypted_char
else:
plaintext += char
return plaintext
ciphertext = "XYCCFHNZRMK"
key = "KEY"
decrypted_text = vigenere_decrypt(ciphertext, key)
print(decrypted_text)
В этом примере функция vigenere_decrypt
принимает зашифрованный текст и ключевое слово как параметры. Она проходит по каждому символу в зашифрованном тексте и применяет обратное преобразование с помощью алгоритма шифра Виженера. Расшифрованный текст выводится на экран.
3. Расшифровка текста с использованием секретных ключей шифрования
Еще один метод расшифровки текста в Python - использование секретных ключей шифрования. В этом методе текст зашифровывается и расшифровывается с использованием одного и того же ключа.
from cryptography.fernet import Fernet
def decrypt_text(ciphertext, key):
f = Fernet(key)
decrypted_text = f.decrypt(ciphertext.encode()).decode()
return decrypted_text
ciphertext = "gAAAAABgKu3l167VeGwaSrUNi2nvmmyNJNYvWksf7qaAmVvT2zvK_FloaVsXmfAtfwC2bXEsH2Y15bIRz8KUnZtBK3vlzMwKmKVsGgQnuaY4-a2RR4Wz",
key = "7LvnQ4U8qLeV8tQzRitiKtDQhm2CSxMcH3tGY8JOXCM="
decrypted_text = decrypt_text(ciphertext, key)
print(decrypted_text)
В этом примере используется библиотека cryptography
, чтобы расшифровать текст с использованием секретного ключа. Функция decrypt_text
принимает зашифрованный текст и ключ шифрования как параметры. Расшифрованный текст выводится на экран.
Теперь у вас есть несколько примеров методов расшифровки текста в Python. Вы можете выбрать подходящий метод в зависимости от типа шифрования, которым текст был зашифрован, и применить его для расшифровки вашего текста.