实现移位密码,就是将字母从字母表中向左移动或向右移动。比尔盖子首先想到了ANSI码,但由于不知道怎么处理出界,因此又用列表解决问题。等修改完列表,突然又想到ANSI的解决方案。因此,才写了两个版本。大家根据需求用吧。如果有bug务必提出!
这里有两段代码可以实现,一个是用ANSI码实现;另一个是用列表实现。
但是这些代码一点都不“美”,还需修改。经过修改,已经有些完美了。
更新1:列表版的代码不但不美,而且还有bug,比尔盖子已经做了修改!
更新2:ANSI版的代码虽然实现简单,但是没有注释,而且有两个严重bug,比尔盖子也已经修改!
更新3:使用取余数来代替while循环减去26,在明文、密钥超长的情况下提速至少100倍;化简了ANSI版出界对折的公式。
更新4:重新实现了list版本的加密算法,性能又至少提升2倍。
注:无论代码里是否有声明, 这里的声明将覆盖掉其中的声明。
代码使用GPL v3或更高版本发布。
ANSI版:
这里的代码已经修改了,有了详细注释,而且修正了bug。
很抱歉,代码太多了,因此请去我的Github:https://github.com/biergaizi/caesar-encrypt/tree/查看各个版本,ANSI版的文件名叫”ansi.py”。
列表版:
这里的代码已经修改了,更加美,而且修正了bug。
新版
很抱歉,代码太多了,因此请去我的Github:https://github.com/biergaizi/caesar-encrypt/tree/查看各个版本,列表版的文件名叫”list.py”。
发表评论