从乱码到代码

2022-07-12 05:18:19   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《从乱码到代码》,欢迎阅读!
乱码,代码
龙源期刊网 http://www.qikan.com.cn

从乱码到代码

作者:陈

来源:《信息技术教育2008年第06

Vs lbh pna ernq guvf,lbh ner vaivgrq.

上面的文字看上去好像是乱码,不过要读懂它也不难,按字母表顺序,把每个字母向前移13位(am变成nznz变成am),于是就变成了If you can read thisyou are invited.这是一种加密方法吗?可以算是,也可以说不是。

古罗马时期,恺撒经常通过顺序移动若干位字母(常常是3位)来加密其重要信件,由于恺撒的名气,现在人们仍然将这种方法称为恺撒移位加密法。尽管有证据表明,恺撒并非是利用字母移位来进行加密的第一人。实际上从现代密码学的观点看,破解移位码简直是轻而易举的事情,所以,现在几乎没有人会动真格地把移位码用在信息安全领域。

不过有趣的是,按字母表移动13次的加密法却十分有名,甚至还有一个专有名词,称为Rotate by 13 places,简写为ROT13。为什么偏偏要移动13位呢?原因之一是13这个数字在西文化中的敏感性,而另一个更重要的原因可以总结为一个看似很玄妙的公式。这就成了本文的第一个问题:公式ROT13(ROT13(x))=ROT26(x)=x究竟代表了什么意思呢?

虽然ROT13很少被用于重要场合,但根据一条著名的安全原则:如果信息被保护的时间要短于该保护被破解的时间,那么这种保护就是有效的。例如,在教室中,若要隔着几个同学传小纸条给某心领神会者,则纸条上很可能就写着类似“zrrg zr gbavtug”这样的信息(当然并不推荐在上课时这么做)。20世纪80年代起,ROT13作为幽默或谜语流传开来,不过它果真越来越多地出现在信息技术的课堂中,成为讲解编码解码、算法结构等教学内容的重要案例。 若通过分支结构语句编程对一串文字ROT13方式加密,算不上是什么特别困难的任务,但这里有意要提高一下难度。本文的第二个问题:若不用分支结构,如何仅编写一行程序表达式,就能将某字母按ROT13加密法,生成对应的加密后的字母呢(只考虑小写的情况)?

只用一行代码实现某个复杂功能,在英文中被称为One-liner编程,One-linerUNIX其他类似UNIX系统中尤其普遍,下面这个例子,仅用一行RUBY程序代码,就实现了输入文本、ROT13加密或解密、输出加密或解密后文本的功能: gets.each_byte {|x| puts ""

有兴趣的话可以尝试分析这行代码的意思,不过即使读不懂也无伤大雅。熟练的程序员常常利用One-liner高效实现复杂任务,甚至有的还将One-liner编程作为一种挑战极限的智力游戏。从处理文本角度而言,RUBY还不算是编写One-liner的利器,用AWKPerl所写代码


本文来源:https://www.wddqxz.cn/a8473f41a1116c175f0e7cd184254b35effd1a38.html

相关推荐