发信人: wenbobo()
整理人: wenbobo(2002-12-22 01:27:57), 站内信件
|
发信人: bluesea (蓝海), 信区: Internet
标 题: 乱码大全(2)──ROT13
发信站: BBS 水木清华站 (Tue Feb 3 00:56:44 1998)
乱码大全(2)──ROT13
Jvgu n tbbq pbafpvrapr bhe bayl fher erjneq, jvgu uvfgbel gur svany
whqtr bs bhe qrrqf, yrg hf tb sbegu gb yrnq gur ynaq jr ybir, nfxvat
Uvf oyrffvat naq Uvf uryc, ohg xabjvat gung urer ba rnegu Tbq'f jbex
zhfg gehyl or bhe bja.
Wbua Svgmtrenyq Xraarql
如果你自己能够看懂上面的短文,那么请忽略本文的其余部分。
如果有人写来一封莫名其妙的信, 含有“V Ybir lbh!”这样的句子,也许
你还有可能以为这是德语。其实这是一种最简单的通用编码──ROT13, 这个句
子实际上是“I Love you!”。不懂德语的人经常要闹笑话,Usenet 上经常有这
样的标题:This is not ROT13, it's German. 或者 This isn't German, it's
ROT13. 足见这个误会是世界性的。
ROT13 是一种简单的编码,它把字母分成前后两组,每组13个,编码和解码
的算法相同,仅仅交换字母的这两个部分,即:[a..m] --> [n..z] 和 [n..z]
--> [a..m] (--> Caesar 13)。 英国帝国大学计算机在线字典解释 ROT13 时说:
“It is used to enclose the text in a sealed wrapper that the reader
must choose to open - e.g. for posting things that might offend some
readers, or spoilers. ” ROT13 用简易的手段使得信件不能直接被识别和阅
读,也不会被搜索匹配程序用通常的方法直接找到。经常用于 USENET 中发表一
些攻击性或令人不快的言论或有简单保密需要的文章。
常见的 email/news reader 程序都可以对 ROT 13 进行解码,如 Netscape
和 Microsoft News 等。一些 Text 编辑程序也可以实现 ROT13 的解码。 比如
EditPad( http://www.tornado.be/~johnfg/ ,双牛站的 HTML TextEditor分类
下面也可以下载)。由于 ROT13 是自逆算法,所以,解码和编码是同一个过程。
下面的 C 程序是最短的 ROT13 处理程序,它只有78个字符。当然在MSVC编
译中会得到没有库声明的警告或错误。
main(c){while((c=getchar())+1)putchar(isalpha(c)?tolower(c)<'n'?c+13:c-13:c);}
(出处: http://www.cis.ohio-state.edu/~fine/rot13.html )
下面的宏可用于 Word6、7 进行 ROT13 编解码:( 本程序的出处:Subject:
Re: ROT13 Macro / From: [email protected] (WNCOAN) / Date: 1998/01/29 /
Newsgroups: microsoft.public.word.programming )
Sub MAIN
StartOfDocument
While Not AtEndOfDocument()
If Asc(Selection$()) > 64 And Asc(Selection$()) < 91 Then
newAsc = Asc(Selection$()) + 13
If newAsc > 90 Then newAsc = newAsc - 26
CharRight 1, 1
Insert Chr$(newAsc)
ElseIf Asc(Selection$()) > 96 And Asc(Selection$()) < 123 Then
newAsc = Asc(Selection$()) + 13
If newAsc > 122 Then newAsc = newAsc - 26
CharRight 1, 1
Insert Chr$(newAsc)
Else
CharRight
EndIf
Wend
End Sub
下面这些网址以 cgi 的方式提供在线的 ROT13 转换。
http://otto.cmr.fsu.edu/~davis_t/rot13.cgi
http://as.alliancestudio.com/tk/rot13.html
http://www.rtg.se/~niclas/reddwarf/rot13.htm
到现在为止,您已经可以对本文开始的那一段代码进行解码了。那是美国前
总统肯尼迪的一段演说。
“乱码大全”,作者:bluesea,水木清华BBS成员。欢迎在 BBS中转载,帮
助计算机初学者解决使用软件过程中遇到的实际问题。本文原载于水木清华 BBS
的 Internet讨论区。地址是: telnet://bbs.tsinghua.edu.cn ,WWW访问的地
址是 http://bbs.tsinghua.edu.cn 。当下面的条件全部满足时,转载本文可以
不经过作者允许:(1) 转载水木清华 BBS 的信头;(2)不修改原文;(3) 转载仅
限于各种 BBS 和非商业性质的个人网点。 严禁各种形式的抄袭,严禁非作者将
本文或局部用于任何正式出版的刊物。本自然段是全文的一部分。
--
脊柱是我们这种生命的重要特征,在此基础上我们才有了光芒的智慧和
丰富的情感。上帝赋予我们自由的意志,同时也赋予我们选择的重担。
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.99.63.94]
|
|