【Python】破解摩斯密码

本文介绍了摩尔斯电码的基本概念,并展示了如何使用Python实现摩尔斯密码的加密和解密过程。通过示例代码解释了加密和解密算法的工作原理,并进行了测试验证其正确性。
摘要由CSDN通过智能技术生成

大家都看过电影《无间道》吧。在电影《无间道》中,刘建明(刘德华饰)作为黑帮的卧底在一次行动中发现了警察的卧底陈永仁(梁朝伟饰)与黄警督(黄秋生饰)通过摩斯电码进行通讯,经过紧急的群发区域短信 “有内鬼,终止交易” 避免了黑帮头目被抓。

通过动图能看到黄警督和陈永仁仅通过手指的敲击就能完成通讯,是不是很神奇?

在这里插入图片描述

摩尔斯电码

摩斯密码的定义如下:

摩尔斯电码( 又译为摩斯密码,英语:Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。是由美国人艾尔菲德·维尔与萨缪尔·摩尔斯在1836年发明。

摩尔斯电码是一种早期的数码化通信形式,它依靠一系列的点和划来传递编码信息,它的代码包括五种:

Python学习、插件、素材群:906715085###
•点( · ):1 (读 “滴” dit ,时间占据1t )


•划(—):111 (读 “嗒” dah ,时间占据3t )


•字符内部的停顿(在点和划之间):0 (时间占据1t )


•字符间停顿:000 ( 时间占据3t )


•单词间的停顿:0000000 ( 时间占据7t )

点的长度(也就是上面的时间长度t)决定了发报的速度。

我们的英文字母、数字和标点符号与摩斯密码的对照图如下:

在这里插入图片描述

我们现在要发送 “M O R S E(空格) C O D E” (morse code)这单词,通过查表可知,它应该是这样

—— ——— ·—· ··· · / —·—· ——— —·· ·

对应的报文应该如下(滴 表示敲击,▢ 表示停顿)

滴滴滴▢滴滴滴▢▢▢滴滴滴▢滴滴滴▢滴滴滴▢▢▢滴▢滴滴滴▢滴▢▢▢滴▢滴▢滴▢▢▢滴▢▢▢▢▢▢▢滴滴滴▢滴▢滴滴滴▢滴▢▢▢滴滴滴▢滴滴滴▢滴滴滴

是不是很有意思?

Python实现

用 Python 实现摩斯密码的加解密,其实很简单,只需要把对照表放在一个字典中,加密的时候将明文拆分,然后从字典中取出对应的密码组合在一起,解密的时候就是通过密文去对照表找对应的明文,然后拼在一起就行。

摩斯密码对照表

我们把摩斯密码对照表用字典存储之后,是这样的:

MORSE_CODE_DICT = {
   
                   'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.',
                   'F': '..-.', 'G': 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值