Введение
В этом проекте вы научитесь реализовывать простой алгоритм шифрования и дешифрования под названием "Clear Code Encryption". Этот метод шифрования использовался в раннем телеграфном коммуникационном системах Китая в конце Qing династии.
👀 Предварительный просмотр
## Пример 1
numb = 1530; encryption_text = "0383"
## Пример 2
numb = 0; encryption_text = "9853"
## Пример 3
numb = 12345; encryption_text = None
🎯 Задачи
В этом проекте вы научитесь:
- Как понять метод шифрования и его основные принципы
- Как реализовать функцию
plain_code_encryption(numb)для выполнения шифрования - Как протестировать функцию шифрования с различными входными данными
- Как обрабатывать ввод пользователя и вызывать функцию шифрования
🏆 Достижения
После завершения этого проекта вы сможете:
- Объяснить метод "Clear Code Encryption" и его историческое контекста
- Реализовать базовый алгоритм шифрования и дешифрования с использованием Python
- Протестировать и проверить функцию шифрования с различными сценариями входных данных
- Интегрировать ввод и вывод пользователя в скрипт шифрования
Разобраться с методом шифрования
В этом шаге вы узнаете о методе шифрования, используемом в проекте "Clear Code Encryption".
Метод шифрования работает следующим образом:
- Четыре цифры исходного кода по отдельности добавляются к четырем цифрам ключа шифрования.
- При сложении каждой цифры, если сумма больше или равна 10, отбрасывается 10 и остается только цифра в разряде единиц.
- При дешифровании из пароля вычитаются четыре цифры ключа дешифрования, чтобы получить исходный код и найти соответствующий текст.
Например, пусть исходный код - 1530, а ключ шифрования - 9853.
- Сложение первой цифры: 1 + 9 = 10, 10 считается за 0.
- Сложение второй цифры: 5 + 8 = 13, отбрасывается 10 и остается 3.
- Сложение третьей цифры: 3 + 5 = 8.
- Сложение четвертой цифры (10 + 3 = 13, отбрасывается 10 и остается 3).
Финальный зашифрованный текст - "0383".
Реализовать функцию plain_code_encryption(numb)
В этом шаге вы реализуете функцию plain_code_encryption(numb) в файле plain_code.py.
- Откройте файл
plain_code.pyв вашем редакторе кода. - Найдите функцию
plain_code_encryption(numb). - Реализуйте функцию так, чтобы она выполняла следующие задачи:
- Введите произвольное число от 0 до 9999 (включительно 0 и 9999), добавьте к нему 9853 и получите 4-значное число (в формате
str) после сложения, а затем верните его. - Если введенное число имеет менее 4 цифр, заполните пропущенные позиции нулями. Например, если введено число 32, его нужно воспринимать как 0032.
- Добавьте числа в соответствующих позициях. Если сумма больше или равна 10, отбросьте 10 и оставьте только цифру в разряде единиц.
- Если введенное число не находится в диапазоне от 0 до 9999, верните
None.
- Введите произвольное число от 0 до 9999 (включительно 0 и 9999), добавьте к нему 9853 и получите 4-значное число (в формате
Вот полный код для функции plain_code_encryption(numb):
def plain_code_encryption(numb: int) -> str:
if numb < 0 or numb > 9999:
return None
numb_str = str(numb).zfill(4)
key_str = "9853"
encryption_text = "".join(
str((int(n) + int(k)) % 10) for n, k in zip(numb_str, key_str)
)
return encryption_text
Тестировать функцию plain_code_encryption(numb)
В этом шаге вы протестируете функцию plain_code_encryption(numb) с помощью предоставленных примеров.
- Откройте файл
plain_code.pyв вашем редакторе кода. - Добавьте следующий код в конец файла:
if __name__ == "__main__":
print(plain_code_encryption(1530)) ## Output: "0383"
print(plain_code_encryption(0)) ## Output: "9853"
print(plain_code_encryption(12345)) ## Output: None
- Сохраните файл и запустите скрипт с помощью команды
python3 plain_code.py. - Проверьте, совпадает ли вывод с ожидаемыми результатами.
Обработать ввод пользователя
В этом шаге вы измените скрипт, чтобы он принимал ввод пользователя и вызывал функцию plain_code_encryption(numb) с числом, предоставленным пользователем.
- Откройте файл
plain_code.pyв вашем редакторе кода. - Найдите код, который вы добавили на предыдущем шаге, и замените его на следующий:
if __name__ == "__main__":
txt = int(input())
print(plain_code_encryption(txt))
- Сохраните файл и запустите скрипт с помощью команды
python3 plain_code.py. - При появлении запроса введите число от 0 до 9999, и скрипт выведет зашифрованный текст.
Поздравляем! Вы завершили проект "Clear Code Encryption". Вы научились реализовать метод шифрования и тестировать его с различными входными данными.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



