最近看了一本书名很无趣但内容出奇精彩、干货满满的科普类书籍——西蒙·辛格的《密码故事》。强烈跟大家推荐这本书,程序员们更是好好阅读一翻。作者把密码学的原理从古代讲到了现代,每个真实发生的故事都让我感叹人类的智力又是何等惊人。就算你不写代码、学生时代数学分数很差,这本书在阅读理解上也不会给你带来太多的困难。配合着西蒙·辛格的另外一本书《费马大定理》,我相信大家会激动地说——如果小时候看到此类书籍,我该会多么热爱数学,惊讶于数学之美呀。那么要不现在开始看起,要么留着以后给你家孩子看吧。
今天要跟大家介绍《密码故事》里面击中我嗨点的一件事情——摩尔斯电码的发明。我们经常在香港警匪片中看到卧底通过有规律地敲击桌子发出声响,给阿Sir传递讯息。阿sir专注记忆卧底给出的提示,接着破解其传递的信息,最后浩浩荡荡端了坏人的窝。剧情里卧底与阿sir的通信方式就是摩尔斯电码的应用。又或者在谍战片中,经常看到有人在设备前接受滴滴滴答答的一连串消息,这也是摩尔斯电码。
摩尔斯电码还有一个译名叫摩斯密码,但摩尔斯电码本身并不是某种形式的密码,而是将26个字母译成一系列已规定的点和短横,用来表示字母的一种便捷方式。当然了,发送方和接收方二者可以自己制定加密规则,发送方将信息源先加密后,通过摩尔斯密码转换传输,接收方在收到讯息后自行根据当初二者自定的规则进行解密。举个例子,你想传输“DBS”(Direct Broadcasting Satellite,中文意思直播卫星)三个字母,但是又不想让人知道直接的意思,那你制定了密码规则,字母向前移动一位,变成“CAR”(汽车)。接着转成摩尔斯电码“_._ .._ ._.”传输,接收方把摩尔斯电码转成“CAR”后,再按照你们的规则解密即可。
大家都知道“SOS”是国际求救信号。经常的我们想当然这三个字母应该是某三个单词的缩写,但事实并不是这样的,这三个字母组合一开始并没有任何实际意义。“SOS”对应摩尔斯电码是“... _ _ _ ...”,在电报中是发报方最容易发出、接收方最容易识别的电码。摩尔斯电码于19世纪发明,而“SOS”的出名,是因为1912年著名泰坦尼克号游轮遇险、船员向外界发出了“... _ _ _ ...”信号。虽然当救援队赶到时,船已经沉的差不多了,但还是救起了七百多人。从此以后,SOS被广泛的接受和使用。这,是一个悲伤的故事。
收拾一下心情,我们来思考一下除了文字转达摩尔斯电码外,我们该怎么以其他形式传递摩尔斯电码呢?首先是以声音的形式。“.”表示短音,“_”表示相对的长音。比如我们要敲击“SOS”的摩尔斯电码,那就是“... _ _ _ ...”,注意字符间(“S”和“O”间)也需要间隔的。一般字符间隔三个短音的时长,但普通人只要能做出间隔的感觉就好。如果我们传递是多个单词的信息,单词与单词的间隔时长是七个短音。文字中,一般用“/”来分隔单词。比如“I Love You”对应的摩尔斯电码是
“.. / ._.. _ _ _ ..._ . / _._ _ _ _ _ .._”
注意字母间有时间间隔,单词间有更长的时间间隔。简书好像不支持MP3播放,我在这就不放音频喽。好学的人可以使用我文章最后推荐的APP听音频。
通过闪烁灯光和眨眼睛,都可以传递摩尔斯电码信息的,逻辑与声音敲打一致。今天写这篇文章,并不是鼓励大家把摩尔斯密码学得多精深,这很枯燥又没多大意义。中文我希望的是大家能掌握最基本的SOS摩尔斯求救能力。世事难料,不一定是我们,如果别人向我们发出类似的求救信号,我们是不是能理解并伸出援手呢?切换到其他场景,情侣间也可以用摩尔斯电码来传递情意。就像我知道的身边的程序员,会将中文转成Unicode发微博,表达对女朋友的爱意。
单身狗表示......
祝你们和和美美,白头偕老!以后吃饭约会前,先解一条摩尔斯电码吧,解出了约会时间和地点再见面吧,不然一辈子不要见了~哈哈哈哈哈哈~
最后,给对摩尔斯电码非常感兴趣的朋友做一些推荐。
练习网站:lcwo.net/
书籍:《业余无线电通信》、人民邮电出版社出版《标准电码本(修订本)》
标准中文电码查询:
apps.chasedream.com/chinese-commercial-code/
(注意:摩尔斯编码只做英文字母和数字,以及一些标点的编码,中文并不在标准摩尔斯编码中。中文电码采用4位阿拉伯数字做代号,比如“我”的中文摩尔斯编码是阿拉伯数字“2053”,然后再将“2053”转为标准摩尔斯编码即可。)
iOS APP:MorseWorld(有对应的音频和闪光效果)