Atbash密码和摩斯密码

一、 Atbash密码

Atbash Cipher是一种简单的替换密码,与凯撒相类似,区别在于Atbash密码使用的一般是前后字母互换。例如:

  • ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • ZYXWVUTSRQPONMLKJIHGFEDCBA
    同样的可以利用ASCII表转回进行解密或者词频分析进行破解。
    例题:wl blf pmld zgyzhs kzhhdliw
    对此进行写加密解密算法,只需要注意这里用的是ord(Z) - 当前字母的码值然后加上ord(A),于是可以依照此思路写出加密解密算法。
点击查看代码
#加密
def atbash(text):#ord(A) <--> ord(Z)#ord(B) <--> ord(Y)#0  <-->   25#1  <-->  24#ord(Z) - ord(X) + ord(A)result = ""for char in text:if char.isalpha():# 处理大写字母if char.isupper():result += chr(ord("Z") - ord(char) + ord("A"))# 处理小写字母else:result += chr(ord("z") - ord(char) + ord("a"))else:# 非字母字符保持不变result += charreturn result#解密
def atbash_decrypt(text):return atbash(text)while True:print("1.加密")print("2.解密")print("3.退出")choice = input("请输入你的选择:")if choice == "1":text = input("请输入要加密的文本:")print("加密后的文本为:" + atbash(text))elif choice == "2":text = input("请输入要解密的文本:")print("解密后的文本为:" + atbash_decrypt(text))elif choice == "3":breakelse:print("输入错误,请重新输入")

二、摩斯密码

摩斯密码又叫摩尔斯电码,是由美国人在1836年发明的一种通过时断,以及不同的排列顺序来表达不同英文字母、数字和标点符号的信息代码,主要由点、划、字符间的停顿、单词间的停顿和句子之间的停顿构成。
莫斯码表如下所示,用python字典进行展示。

点击查看代码
MOSS_PASSWORD = {'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': '--..','1': '.----', '2': '..---', '3': '...--','4': '....-', '5': '.....', '6': '-....','7': '--...', '8': '---..', '9': '----.','0': '-----', ', ': '--..--', '.': '.-.-.-','?': '..--..', '/': '-..-.', '-': '-....-','(': '-.--.', ')': '-.--.-'}
摩斯密码有时也会用01、AB等不同的符号表示。所以当我们观察到如果在一段语句中有着明显的间隔时,就需要考虑使用摩斯密码了。接下来将展示摩斯密码的编程。
点击查看代码
#创建密码本
MOSS_PASSWORD = {'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': '--..','1': '.----', '2': '..---', '3': '...--','4': '....-', '5': '.....', '6': '-....','7': '--...', '8': '---..', '9': '----.','0': '-----', ', ': '--..--', '.': '.-.-.-','?': '..--..', '/': '-..-.', '-': '-....-','(': '-.--.', ')': '-.--.-'}MOSS_key={".":'0',"-":'1'
}#加密
def moss_encrypt(text):result = ""content = ""for char in text:if char.isalpha() or char in MOSS_PASSWORD.keys():result += MOSS_PASSWORD[char.upper()] + " "else:result += charreturn result#解密
def moss_decrypt(text):result = ""for char in text.split():if char in MOSS_PASSWORD.values():result += list(MOSS_PASSWORD.keys())[list(MOSS_PASSWORD.values()).index(char)]else:result += charreturn resultwhile True:print("1.加密")print("2.解密")print("3.退出")choice = input("请输入你的选择:")if choice == "1":text = input("请输入要加密的文本:")print("加密后的文本为:" + moss_encrypt(text))elif choice == "2":text = input("请输入要解密的文本:")print("解密后的文本为:" + moss_decrypt(text))elif choice == "3":breakelse:print("输入错误,请重新输入")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 中如何保证缓存与数据库的内容一致性?

Redis 中如何保证缓存与数据库的内容一致性?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

平顶山市哪里有做网站的个人团购网站 转入备案

I2C总线和通信协议详解 (超详细配42张高清图万字长文) I2C&#xff08;Inter-Integrated Circuit&#xff09;通信总线&#xff0c;作为嵌入式系统设计中的一个关键组成部分&#xff0c;其灵活性和高效率使其在高级应用中备受青睐。本文旨在提供关于I2C通信总线的深度解析&…

SQL Indexes(索引) - 详解

SQL Indexes(索引) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

Payload CMS:开发者优先的Next.js原生开源解决优秀的方案,重新定义无头内容管理

Payload CMS:开发者优先的Next.js原生开源解决优秀的方案,重新定义无头内容管理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

CMS网站建设实战试题广东网页设计

&#x1f33f; 一、TestAppForlOS TestAppForlOS是一款运行在iOS系统上的测试应用程序。它可以用来测试iOS设备的硬件和软件性能&#xff0c;以及验证应用程序的兼容性和稳定性。该应用程序提供了多种测试工具&#xff0c;包括CPU、内存、存储器、网络等性能测试&#xff0c;同…

网站维护工作的基本内容苏州建设局网站首页

文章目录 1. Label 提示框1.1. 显示文本1.2. 修改Label的文本1.2.1. 方式1&#xff1a;通过label.config()1.2.2. 方式2&#xff1a;通过 label["text"] 属性进行修改 1.3. 设置背景图片 2. Tkinter 开发3. python图形界面开发3.1. Python图形界面开发——Tkinter3.2…

07. 自定义组件

一、在单独文件中自定义组件我们可以在终端中使用 pip 安装 PySide6 模块。默认是从国外的主站上下载,因此,我们可能会遇到网络不好的情况导致下载失败。我们可以在 pip 指令后通过 -i 指定国内镜像源下载。 pip ins…

CF1611E2 Escape The Maze (hard version)

CF1611E2 Escape The Maze (hard version)题目简化 我在1号节点,你有k个朋友,分别在a1,a2,a3....ak的位置,在同一时间内可以移动1步,我不能和朋友走到同一个节点,如果我能走到叶节点,我就赢了,输出-1,否则必然…

P8186 [USACO22FEB] Redistributing Gifts S

P8186 [USACO22FEB] Redistributing Gifts S题目 每一个牛都有一个自己喜欢的排列,并且初始的时候,每只牛都是i,求经过n次交换后,每只牛能拿到的最喜欢的 我们来简化这n次操作,a1->a2,a2->a3,a3->a4,a4-…

重庆网站制品牌建设推荐

MySQL强制索引和禁止某个索引1、mysql强制使用索引:force index(索引名或者主键PRI)例如:select * from table force index(PRI) limit 2;(强制使用主键)select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")select * from table …

做视频解析网站是犯法的么网站备案时间就是正式上线时间吗

题目描述 给出一个初始序列fA1;A2;:::Ang&#xff0c;要求你编写程序支持如下操作&#xff1a; 1. ADDxyD&#xff1a;给子序列fAx:::Ayg的每个元素都加上D。例如对f1,2, 3,4,5g执行"ADD 241" 会得到f1,3,4,5,5g。 2. REVERSExy&#xff1a;将子序列fAx:::Ayg翻转。例…

python语法记录

map()函数 A=[1,-3,5] A_abs = list(map(abs, A))map(func, A),把func函数作用到A的每个元素上,返回的是惰性迭代器,依次产出1,3,5,不能直接打印或索引; 用list()把它一次性拉出来,变成普通列表[1, 3, 5]。

怎么免费建立网站做推广天津雍鑫建设投资集团网站

问题描述 在Mac上安装git&#xff0c;双击pkg进行安装&#xff0c;报如下图错误&#xff1a; 解决办法 不要双击pkg文件&#xff0c;改成选中文件之后&#xff0c;鼠标右键&#xff0c;选择“打开方式->安装器&#xff08;默认&#xff09;”&#xff0c;即可继续安装。 转载…

详细介绍:Go 语言 + Word 文档模板:WordZero 引擎如何让企业文档处理效率提升 300%?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Go 即时通讯体系:客户端与服务端 WebSocket 通信交互

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站开发持续更新wordpress广告设置

大数据开发&#xff08;Hadoop面试真题&#xff09; 1、Hive count(distinct)有几个reduce&#xff0c;海量数据会有什么问题&#xff1f;2、既然HBase底层数据是存储在HDFS上&#xff0c;为什么不直接使用HDFS&#xff0c;而还要用HBase?3、Spark map join的实现原理&#xf…

2025 年储罐厂家推荐最新公司权威排行榜榜单发布,深度解析衬四氟储罐 / 硫酸储罐 / 盐酸储罐工厂选购指南

引言在当今工业领域,储罐作为储存各类液体、气体等物质的关键设备,其重要性不言而喻。从化工行业储存具有强腐蚀性的原料,到食品行业对卫生安全要求极高的产品储存,再到环保领域对污水、废气处理过程中的暂存需求等…

读混元image论文

读混元image论文https://www.yiyibooks.cn/arxiv/2509.23951v1/index.html

实用指南:跳动的爱心

实用指南:跳动的爱心2025-10-05 20:24 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

UnicodeEncodeError: locale codec cant encode character \u5e74 in position 2: encoding error

s= datetime.now().strftime(u"%Y年%m月%d日 %H:%M:%S" )UnicodeEncodeError: locale codec cant encode character \u5e74 in position 2: encoding error可行方案: import localefrom datetime import da…