0.项目使用说明:
该md文件对代码文件使用作出说明,对具体实现步骤和原理的说明请见代码中注释。
(0)开发环境说明:
-
系统版本:Windows 10
-
python版本:python 3.7
-
numpy库
-
math库
-
-
软件版本:pycharm 2019.1
(1)项目目录说明:
主目录:
主目录下:
-
3218004808古典密码文件夹:存放代码文件
-
3218004808古典密码.md:代码文件使用说明
(2)代码使用说明:
-
3218004808古典密码文件夹中存放有3份代码文件,分别为三个密码的代码文件。
-
在pycharm中运行,控制台输出。
1.凯撒密码:
规则:采用的是最经典的移位13位
-
加密结果:
-
解密结果:
2.playfair密码:
规则:约定以‘I’代替‘J’、重复字符之间加入‘X’
加密结果:
解密结果:
3.Hill密码:
规则:随机密钥矩阵为随机生成的范围在[0-3]的3*3矩阵,
需要注意的是,我使用的是python的numpy模块中生成随机矩阵的方法np.random.randint(0,3,(3,3))
,其中求逆矩阵 np.linalg.inv('随机矩阵')
时会有概率产生奇异矩阵或带有小数部分的矩阵导致程序错误。只需重新运行直到产生正确的整数逆矩阵即可。
加密与解密结果一次性给出: