开源项目:凯撒密码转换器

2021-11-27  本文已影响0人  灰尘极客

几天前一次和朋友聊天谈到了加密聊天,于是想到了凯撒密码,随之就是想用自己的一点烂技术写点好玩的:

项目名:gkc_Caesar_cipher
开源地址:https://moecloud.cn/s/PdoQIM
开发语言:Python
开发者:灰尘疾客

下面是成品说明

凯撒密码转换器

程序介绍

本程序可以将用户输入的内容通过非固定的凯撒密码字典进行加/解密,是一种好用加密的加密聊天方式。

历史记载

Caesar cipher,发明者Caesar(凯撒),罗马人。
根据苏维托尼乌斯的记载,恺撒曾用此方法对重要的军事信息进行加密:
如果需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,余此类推。
同样,奥古斯都也使用过类似方式,只不过他是把字母向右移动一位,而且末尾不折回。每当他用密语写作时,他都用B代表A,C代表B,其余的字母也依同样的规则;他用A代表Z。
另外,有证据表明,恺撒曾经使用过更为复杂的密码系统:文法学家普罗布斯曾经写过一份独具创新的手稿,研究恺撒书信中包含有秘密信息的字母。
已经无法弄清恺撒密码在当时有多大的效果,但是有理由相信它是安全的。因为恺撒大部分敌人都是目不识丁的,而其余的则可能将这些消息当作是某个未知的外语。即使有某个敌人获取了恺撒的加密信息,根据现有的记载,当时也没有任何技术能够解决这一最基本、最简单的替换密码。现存最早的破解方法记载在公元9世纪阿拉伯的阿尔·肯迪的有关发现频率分析的著作中。

原理

这是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期凯撒的名字命名的,当年凯撒曾用此方法与其将军们进行联系。

使用方法

进入程序后,会有像下面这样的提示:

请在这输入你想加密/解密的内容文本:

随便输入一段英文(此程序仅支持英文和数字,原因看原理):例如Fuck you

然后回车:

请在这输入你想加密/解密的内容文本:Fuck you
您需要加密(输入数字1)还是解密(输入数字2)?:

我们在这输入的是可看的原文,所以我们要加密,输入1,回车:

请在这输入你想加密/解密的内容文本:Fuck you
您需要加密(输入数字1)还是解密(输入数字2)?:1
请输入要右移位移的字母(可以为负):

我们以位移+3(这是当年的默认值,输入其他值可以为负,但是必须加负号,正数的正号加不加无所谓)为例,输入并回车:

请在这输入你想加密/解密的内容文本:Fuck you
您需要加密(输入数字1)还是解密(输入数字2)?:1
请输入要右移位移的字母(可以为负):3
ixfn brx
---------------------------------
请在这输入你想加密/解密的内容文本:

程序里面用了循环,所以输出完后会自动进行下一次,这适合正在加密聊天的折腾者。

同样,我们把加密好的文本复制完后重新输入,选择2进行反加密(解密),位移了多少仍然填3:

……
---------------------------------
请在这输入你想加密/解密的内容文本:ixfn brx
您需要加密(输入数字1)还是解密(输入数字2)?:2
请在此处输入要解密的文本被向右移位了多少(可以为负):3
fuck you
请在这输入你想加密/解密的内容文本:

这样解密就成功了,是不是真的很适合爱折腾的你?赶紧发给你的朋友,约定一个固定的位移数(加密密钥)进行愉快的无限制聊天吧!

文件(夹)介绍

programs文件夹

存放主程序及图标文件

en-WW.exe

英文版主程序(在en-ww文件夹内)

ico.ico

程序图标,透明底的

zh-CN.exe

中文版主程序

records.log

日志文件,主要通过自编模块 keeplog 生成,内容为“日期(Y/M/D)+时间(h/m/s)+加密密钥+输入/输出内容+分割线”

上一篇下一篇

猜你喜欢

热点阅读