预备知识
1. 凯撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文:
2)通过不断增加凯撒解密难度,理解唯密文解密,提高解密性能。
实验环境
操作系统:Windows7_x64
Python版本:3.7
IDE:Pycharm
实验任务一
任务描述:我们以古典密码算法中的凯撒密码,编写了可以实现对信息加密和解密的程序。
程序主要有以下5个功能:
1)输入待加密的信息 2)进行凯撒加密
3)将加密后的信息显示在程序中 4)进行凯撒解密
5)将解密后的信息显示在程序中
程序的编程原理:通过将字母按顺序推后3位实现加密,如将字母A换作字母D,将字母B换作字母E。反之即为解密。
加密流程图:
解密流程图:
程序:
def caesar_encrypt(text, shift):
encrypted_text = ""
for char in text:
if char.isalpha():
shift_amount = shift % 26
if char.islower():
new_char = chr(((ord(char) - ord('a') + shift_amount) % 26) + ord('a'))
else:
new_char = chr(((ord(char) - ord('A') + shift_amount) % 26) + ord('A'))
encrypted_text += new_char
else:
encrypted_text += char
return encrypted_text
def caesar_decrypt(encrypted_text, shift):
# 解密实际上就是负向偏移
return caesar_encrypt(encrypted_text, -shift)
# 示例:
plaintext = "wxy"
shift_value = 3
encrypted = caesar_encrypt(plaintext, shift_value)
print(f"加密后的文本: {encrypted}")
decrypted = caesar_decrypt(encrypted, shift_value)
print(f"解密后的原文: {decrypted}")