想起一个好玩的事情,使用python来实现德军在二战时加密的设备——恩格玛机。
那么什么是恩格玛机,他是怎么工作的?这篇文章提供了很详细的说明:
https://www.zhihu.com/question/28397034
请看高票回答。
路一步步走,饭一口口吃,下面,我们也来一步步的实现恩格玛机:
chapter 1
用python实现简单的字母替换:
当我输入一串字符串的时候(这串字符串并没有标点符号,只有字母和空格),程序会按照事先设置好的字母替换表,简单的替换掉密码。
如:
abcdefghjiklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
那么我输入hello world的时候,它应该自动给我替换成 itssg vgkar
试试看吧!
代码如下:使用的是string的maketrans方法,你想到了吗?
# -*- coding:utf-8 -*- # 本代码的目的是通过python实现德军二战时期的密码机:恩格玛 # 首先,第一步是定义一个简单的函数:简单字符替换 import re import string def simple_replace(password, replace_word): if not type(password) == type(replace_word) == type(‘a‘): print(‘密码必须是字符串!‘) return False an = re.match(‘[a-z\s]+$‘, password) if not an: print(‘字符串只能包含小写字母和空格!‘) return False if len(replace_word) != 26: print(‘替换码必须为26个字母!‘) return False ori_table = ‘abcdefghijklmnopqrstuvwxyz‘ table = str.maketrans(ori_table, replace_word) return str.translate(password, table) a_password = input(‘请输入明文:‘) r_password = ‘qwertyuiopasdfghjklzxcvbnm‘ print(‘密文如下:‘, simple_replace(a_password, r_password))
时间: 2024-09-30 00:38:20