最早由古罗马军事统帅盖乌斯·尤利乌斯·凯撒在军队中用来传递加密信息,故称凯撒密码。此为一种位移加密手段,只对26个(大小写)字母进行位移加密,规则相当简单,容易被破解。
凯撒密码属于替代加密,即用另一个字符来替换明文中的原字符,其中的对应关系只有加密者所知。而凯撒密码就是最简单的一种替代加密手段。
凯撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
原文:abcdefg
密文:defghijk
a+3=d,b+3=e以此类推
为了保证都是字母,所以我们会对它取模mod 26
例如:(z+1)mod 26 = a
这样的意思
这里介绍两个函数:
chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。返回值是当前整数对应的ASCII字符。该函数的返回值为字符串形式,例如输入chr(90),输出为 ‘Z’ 。
ord()函数与chr()函数对应,输入ASCII字符表中字符的字符串形式,返回为其在字符表中的排序位次。例如输入ord(‘a’),输出为97。
测试结果如图:
代码如下:
测试结果如图:
凯撒密码原理和加解密就是这么简单di!!!
tips:本人写的代码比较简单,没有考虑一些特殊情况,例如空格啊,或者遇到其他的字符,但是可以在这个代码的基础上自行修改满足所需条件。
如:空格就不偏移,那就跳过那一次循环,如果遇到别的字符看是否要转换,不转换也可以跳过等!!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/40845.html