摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。
摩斯编码:
1、加密方法
2、解密方法
要求:解密的时候要求能够自动识别间隔符,如空格,“\”等。
解密的时候能够自动识别出配对字符,如0和1,.和-。
加密的时候能够自定义区分间隔的符号,默认输出空格。
摩斯密码解密加密Python脚本如下:

'''摩斯编码解码模块@author Liao@time 2020-1-19
'''
class Morse:'''__decode_MorseList解密字典__encode_MorseList加密字典encode加密函数decode解密函数Output输出函数'''__decode_MorseList = {#26个字母".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G","....": "H", "..": "I", ".---": "J", "-.-": "K", ".-..": "L", "--": "M", "-.": "N","---": "O", ".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T", "..-": "U","...-": "V", ".--": "W", "-..-": "X", "-.--": "Y", "--..": "Z",#10个数字"-----": "0", ".----": "1", "..---": "2", "...--": "3", "....-": "4", ".....": "5","-....": "6", "--...": "7", "---..": "8", "----.": "9",#16个字符".--.-":"(", '-.--.-':')',"-....-":"-","..--..":"?", "-..-.": "/", ".-.-.-": ".",".--.-.":"@",'...-..-':'$',"---...":":","--..--":",","-.-.-.":";",".----.":"'","-...-":"=","-.-.--":"!",".-...":"&",".-.-.":"+"}#解密字典__encode_MorseList = dict([values, key] for key, values in __decode_MorseList.items())# 加密字典def encode(self, plaintext="",sign=' '):# 加密函数'''对输入的字符串进行加密args={plaintext: 用于加密的明文字符串sign:自定义的间隔符}'''charlist = list(plaintext.upper())# 将明文中的字母转换成大写                              morsecode=''# 需要转换成的密文                                                    for char in charlist:if char in self.__encode_MorseList.keys():# 明文的字母在字典的键中                  morsecode+=self.__encode_MorseList[char]morsecode+=signelif char==' ':# 明文中的空格                                             continueelse:# 其他                                                       morsecode="error plaintext!"breakself.Output(morsecode)def decode(self, morsecode):  #解密函数'''用于对输入的密文进行解密args={morsecode:需要解密的密文}'''plaintext=''# 需要转换成的明文                                                   morsecode=morsecode.replace("0",".")# 将密文中的字符转换成.和-                           morsecode=morsecode.replace("1","-")l=len(morsecode)# 密文的长度                                          i=0while i<l:# 找出间隔符                                                     if morsecode[i].__eq__(".")or morsecode[i].__eq__("-"):i+=1else:sign = morsecode[i]break;morsecodeList = morsecode.split(sign)for key in morsecodeList:plaintext+=self.__decode_MorseList[key]self.Output(plaintext)def Output(self,string):'''用于输出数据args={string:将要输出的数据}'''print(string)if __name__ == "__main__":mc = Morse()plaintext= input("请输入你需要加密的明文:")mc.encode(plaintext)morsecode = input("请输入你需要解密的摩斯密码:")mc.decode(morsecode)

密码加密解密(一)——摩斯密码相关推荐

  1. python中字符移位加密_1.1 移位密码加密解密python实现

    例题1.1 移位密码加密解密 1.1.使用穷尽密钥搜索法破译如下利用移位密码加密的密文: ESPESTCOPIPCNTDPYPPODACZRCLXXTYR. 1.1答案: K=11,明文序列为: th ...

  2. php加密密码解析,php密码加密解密

    php密码加密解密 龙行    PHP    2020-3-19    1002    0评论 function MD5PWD($data) { $pwd = md5($data); //把密码分割成 ...

  3. 维吉尼亚密码加密/解密在线工具

    维吉尼亚密码加密/解密在线工具,工具链接:http://www.atoolbox.net/Tool.php?Id=856 维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移 ...

  4. 凯撒密码加密解密C语言详细代码

    凯撒密码加密解密C语言详细代码 凯撒密码 又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数: E(m)=(m+k) mod ...

  5. 凯撒密码加密解密——Java代码(密码学)

    凯撒密码加密解密--Java代码(密码学) 凯撒密码: 恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...

  6. VIP品会密码加密解密与登录

    上班都快一周了,一直想更新,奈何小伙还没有从假期的快乐中缓过来,今天终于耐下心来更新一小篇.抠一下某品会的JS代码,接着使用抠取的JS代码加密密码进行登录.友情提示:为避免不必要的纠纷,本文中所有网址 ...

  7. 单表代换密码加密解密

    单表代换密码加密解密原理: 单表代换是指英文字母在进行密码编码替换的时候,有一张对照表,也就是说,对于每一个字母,都是唯一对应的,如: 26个源字母表为:abcdefghijklmnopqrstuvw ...

  8. Python-摩斯密码加密解密

    文章目录 前言 一.摩斯密码表 [1]. encode.txt [2]. decode.txt 二.代码 前言 密码表只写了英文字母和数字,在百度的时候发现不同地方写的符号转换方式不大一样. 你也可以 ...

  9. Python编程:实现凯撒密码加密解密

    凯撒密码 原理: 通过把字母移动一定的位数来实现加解密 明文中的所有字母从字母表向后(或向前)按照一个固定步长进行偏移后被替换成密文. 例如: 当步长为3时,A被替换成D,B被替换成E,依此类推,X替 ...

最新文章

  1. 人脸识别技术用于教育行业引争议
  2. Python 库安装方法:pip安装tar.gz压缩包,pip安装whl文件
  3. android布局如何空行,借用你的思路和框架,修复了空行、偶尔setText无效、padding设置的bug...
  4. nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能
  5. 记录 Linux crontab 的使用
  6. windows10彻底杀死卡死的顽固进程
  7. html5中web存储(localStorage、sessionStorage)与cookie的区别?????
  8. java网络编程实现聊天小程序
  9. MCGS图库 触摸屏组态图库 触摸屏图库 昆仑通态触摸屏专用CGS
  10. 四位共阳极数码管显示函数_74hc573可以驱动几位共阴数码管?74hc573驱动数码管应用解析...
  11. 强化学习理论基础(MDP、值函数与贝尔曼公式以及表格式Agent)
  12. Linux内核的删除
  13. 有向图的强连通分量(SCC)
  14. 腾讯云「邮件证书」重磅发布!从此告别邮件安全漏洞
  15. 更改电脑默认打开的浏览器
  16. Unity_太阳月亮地球的自转公转脚本
  17. 注释详细 基于C++实现链表队列 实现模拟医院看病排队问题 实现链表的基本操作
  18. 编制计算机程序的算法是什么,中国大学MOOC: 编制计算机程序解决问题的过程有:描述问题、算法设计、编写计算机程序和调试等,其中对算法描述不正确的是()。...
  19. 【区块链】区块链在金融领域的应用—对全球578家金融机构的调研
  20. 张驰咨询:精益生产(LP)、六西格玛(Sixsigma)、精益六西格玛(LSS)的区别是什么?

热门文章

  1. 什么是反射 反射怎么用
  2. word怎样让表格不跨页【实测成功】
  3. 日常bug记录——mybatis传值为null
  4. iPad pro 显示器
  5. 龙门标局:白炽灯商标转让所在的类别属于第几类?
  6. xlsx文件的多表读取与写入
  7. 华为机试4.20:按照路径替换二叉树
  8. 聪明人做生意,打折也能玩出新鲜感!让顾客觉得现在不买就是亏!
  9. 资深摄影师眼中,青岛值得一游的景点有哪些?
  10. 怎么使用山东鼎信发送短信验证码