介绍
在这个项目中,你将学习如何实现一种名为「明码加密」的简单加密和解密算法。这种加密方法曾在晚清时期中国早期的电报通信系统中使用。
👀 预览
## 示例1
numb = 1530; encryption_text = "0383"
## 示例2
numb = 0; encryption_text = "9853"
## 示例3
numb = 12345; encryption_text = None
🎯 任务
在这个项目中,你将学习:
- 如何理解加密方法及其基本原理
- 如何实现
plain_code_encryption(numb)函数来执行加密 - 如何使用各种输入测试加密函数
- 如何处理用户输入并调用加密函数
🏆 成果
完成这个项目后,你将能够:
- 解释「明码加密」方法及其历史背景
- 使用 Python 实现基本的加密和解密算法
- 使用不同的输入场景测试和验证加密函数
- 将用户输入和输出集成到加密脚本中
了解加密方法
在这一步中,你将了解「明码加密」项目中使用的加密方法。
加密方法如下:
- 明码的四位数字分别与加密密钥的四位数字相加。
- 对于每一位数字相加,如果和大于或等于 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.py 文件中实现 plain_code_encryption(numb) 函数。
- 在代码编辑器中打开
plain_code.py文件。 - 找到
plain_code_encryption(numb)函数。 - 实现该函数以执行以下任务:
- 输入一个介于 0 到 9999 之间(包括 0 和 9999)的任意数字,将其与 9853 相加,并在相加后得到一个 4 位数字(格式为
str),然后返回该数字。 - 如果输入数字不足 4 位,则用 0 填充缺失的位置。例如,如果输入数字是 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)) ## 输出:"0383"
print(plain_code_encryption(0)) ## 输出:"9853"
print(plain_code_encryption(12345)) ## 输出: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 之间的数字,脚本将打印出加密后的文本。
恭喜你!你已经完成了「明码加密」项目。你已经学会了如何实现加密方法并使用各种输入对其进行测试。
总结
恭喜你!你已经完成了这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。



