怎么通过Go语言实现凯撒加密


小编给大家分享一下怎么通过Go语言实现凯撒加密,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在 2 世纪, 发送机密消息的一个有效方法就是对每个字母进行位移, 使得 'a' 变为 'd''b' 变为 'e' , 依次类推。 这样处理产生的结果看上去就像是一门外语:L fdph, L vdz, L frqtxhuhg. —— 尤利乌斯凯撒(Julius Caesar)正如代码清单 9-6 所示, 使用计算机以数值方式处理字符是非常容易的。代码清单 9-6 处理单个字符: caesar.go(推荐课程:Go教程)然而, 代码清单 9-6 展示的方法并不完美, 因为它没有考虑该如何处理字符 'x''y''z' , 所以它无法对 xylophonesyakszebras 这样的单词实施加密。 为了解决这个问题, 最初的凯撒加密法采取了回绕措施, 也就是将 'x' 变为 'a''y' 变为 'b' , 而 'z' 则变为 'c' 。 对于包含 26 个字符的英文字母表, 我们可以通过这段代码实现上述变换:凯撒密码的解密方法跟加密方法正好相反, 程序不再是为字符加上 3 而是减去 3 , 并且它还需要在字符过小也就是 c‘a’ 的时候, 将字符加上 26 以实施回绕。 虽然上述的加密方法和解密方法都非常直观, 但由于它们都需要处理字符边界以实现回绕, 因此实际的编码过程将变得相当痛苦。回转 13 (rotate 13,简称ROT13)是凯撒密码在 20 世纪的一个变体, 该变体跟凯撒密码的唯一区别就在于, 它给字符添加的量是 13 而不是 3 , 并且 ROT13 的加密和解密可以通过同一个方法实现, 这是非常方便的。现在, 假设搜寻外星智能 (Search for Extra-terrestr免费云主机域名ial Intelligence, SETI) 的相关机构在外太空扫描外星人通信信息的时候, 发现了包含以下消息的广播:我们有预感, 这条消息很可能是使用 ROT13 加密的英文文本, 但是在解密这条消息之前, 我们还需要知悉其包含的字符数量, 这条消息包含 30 个字符, 可以通过内置的 len 函数来确定:注意 Go 拥有少量无须导入语句即可使用的内置函数, len 函数即是其中之一, 它可以测定各种不同类型的值的长度。 例如, 在上面的代码中, len 返回的就是 string 类型的字节长度。 代码清单 9-7 展示的就是外太空消息的解密程序, 你只需要在 Go Playground 运行这段代码, 就会知道外星人在说什么了。代码清单 9-7 ROT13 消息解密: rot13.go以上是“怎么通过Go语言实现凯撒加密”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!

相关推荐: 淘客小程序如何制作

今天小编给大家分享一下淘客小程序如何制作的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。   第一步:你得先申请1个微信小程序并认证(未认证不能上…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/19 19:16
Next 08/20 11:08

相关推荐