当前位置: 首页 > news >正文

密码学---常见的其他密码

费纳姆密码:加解密都需要密钥,以二进制形式表示的密码。(密钥多是一次性的,称位一次性密码本)

加密过程:

char_num = {'A': '1000001', 'B': '1000010', 'C': '1000011', 'D': '1000100','E': '1000101', 'F': '1000110', 'G': '1000111', 'H': '1001000','I': '1001001', 'J': '1001010', 'K': '1001011', 'L': '1001100','M': '1001101', 'N': '1001110', 'O': '1001111', 'P': '1010000','Q': '1010001', 'R': '1010010', 'S': '1010011', 'T': '1010100','U': '1010101', 'V': '1010110', 'W': '1010111', 'X': '1011000','Y': '1011001', 'Z': '1011010'}num_char = {'1000001': 'A',  '1000010': 'B', '1000011': 'C', '1000100': 'D','1000101': 'E', '1000110': 'F', '1000111': 'G', '1001000': 'H','1001001': 'I', '1001010': 'J', '1001011': 'K', '1001100': 'L','1001101': 'M', '1001110': 'N', '1001111': 'O', '1010000': 'P','1010001': 'Q', '1010010': 'R', '1010011': 'S', '1010100': 'T','1010101': 'U', '1010110': 'V', '1010111': 'W', '1011000': 'X','1011001': 'Y', '1011010': 'Z', }# 转换
def txt_num(txt):txt = txt.upper()result = ""for i in txt:result = result + char_num[i]return  result# 最终数字转换为字母
def num_list(txt):num = 0s = []while True:s.append(txt[num:num + 7])num += 7if num > len(txt) - 7:breakreturn s# 加密 文本内容
def encipher(txt, k):result = ''if txt.isalpha() and k.isalpha():txt = txt_num(txt)k = txt_num(k)j = len(k)for i in range(0, len(txt)):if txt[i] == k[i % j]:result += '0'else:result += '1'else:result = "明文与密钥应为纯字母"return result# 解密 文本为数字格式
def decipher(txt, k):result = ''if k.isalpha():k = txt_num(k)j = len(k)for i in range(0, len(txt)):if txt[i] == k[i % j]:result += '0'else:result += '1'result = num_list(result)result_char = ""for i in result:try:result_char = result_char + num_char[i]except KeyError:result_char = result_char + '?'result = result_charelse:result = "密钥应为纯字母"return  resultif __name__ == '__main__':# 加解密,密文text,明文text_2text = ''# 读文本文件key = "polar"text_2 = "polarCTF"print(encipher(text_2, key))# print(decipher(text, key))

 

 解密过程:

char_num = {'A': '1000001', 'B': '1000010', 'C': '1000011', 'D': '1000100','E': '1000101', 'F': '1000110', 'G': '1000111', 'H': '1001000','I': '1001001', 'J': '1001010', 'K': '1001011', 'L': '1001100','M': '1001101', 'N': '1001110', 'O': '1001111', 'P': '1010000','Q': '1010001', 'R': '1010010', 'S': '1010011', 'T': '1010100','U': '1010101', 'V': '1010110', 'W': '1010111', 'X': '1011000','Y': '1011001', 'Z': '1011010'}num_char = {'1000001': 'A',  '1000010': 'B', '1000011': 'C', '1000100': 'D','1000101': 'E', '1000110': 'F', '1000111': 'G', '1001000': 'H','1001001': 'I', '1001010': 'J', '1001011': 'K', '1001100': 'L','1001101': 'M', '1001110': 'N', '1001111': 'O', '1010000': 'P','1010001': 'Q', '1010010': 'R', '1010011': 'S', '1010100': 'T','1010101': 'U', '1010110': 'V', '1010111': 'W', '1011000': 'X','1011001': 'Y', '1011010': 'Z', }# 转换
def txt_num(txt):txt = txt.upper()result = ""for i in txt:result = result + char_num[i]return  result# 最终数字转换为字母
def num_list(txt):num = 0s = []while True:s.append(txt[num:num + 7])num += 7if num > len(txt) - 7:breakreturn s# 加密 文本内容
def encipher(txt, k):result = ''if txt.isalpha() and k.isalpha():txt = txt_num(txt)k = txt_num(k)j = len(k)for i in range(0, len(txt)):if txt[i] == k[i % j]:result += '0'else:result += '1'else:result = "明文与密钥应为纯字母"return result# 解密 文本为数字格式
def decipher(txt, k):result = ''if k.isalpha():k = txt_num(k)j = len(k)for i in range(0, len(txt)):if txt[i] == k[i % j]:result += '0'else:result += '1'result = num_list(result)result_char = ""for i in result:try:result_char = result_char + num_char[i]except KeyError:result_char = result_char + '?'result = result_charelse:result = "密钥应为纯字母"return  resultif __name__ == '__main__':# 加解密,密文text,明文text_2text = '00000000000000000000000000000000000001001100110110001010'# 读文本文件key = "polar"text_2 = "polarCTF"# print(encipher(text_2, key))print(decipher(text, key))

杰弗逊转轮加密需要密钥并用很多行乱序英文字母表示密文的密码。首先要将密文按密钥顺序进行调整,再根据密文顺序整每行字符串即可得到明文。

方法1:

除了每行第一个字母组成的,依次往后向下寻找有意义的字符串,直到找到为止!!!

方法2:

import re
PasswordList = '''
1: < ZWAXJGDLUBVIQHKYPNTCRMOSFE <
2: < KPBELNACZDTRXMJQOYHGVSFUWI <
3: < BDMAIZVRNSJUWFHTEQGYXPLOCK <
4: < RPLNDVHGFCUKTEBSXQYIZMJWAO <
5: < IHFRLABEUOTSGJVDKCPMNZQWXY <
6: < AMKGHIWPNYCJBFZDRUSLOQXVET <
7: < GWTHSPYBXIZULVKMRAFDCEONJQ <
8: < NOZUTWDCVRJLXKISEFAPMYGHBQ <
9: < XPLTDSRFHENYVUBMCQWAOIKZGJ <
10: < UDNAJFBOWTGVRSCZQKELMXYIHP <
11: < MNBVCXZQWERTPOIUYALSKDJFHG <
12: < LVNCMXZPQOWEIURYTASBKJDFHG <
13: < JZQAWSXCDERFVBGTYHNUMKILOP <
'''
ciphertext = "UOFJLBLSXJPJY"  # 存放密文
content = re.findall(r'<(.*?)<', PasswordList, re.S)  # 匹配所有的密码表字符串
key = [2, 3, 7, 5, 13, 12, 9, 1, 8, 10, 4, 11, 6]   # 密钥
list = []   # 定义空列表list,和空串ans
ans = ""
for i in range(13):index = content[key[i]-1].index(ciphertext[i])list.append((index))
for i in range(0, 26):flag = ""for j in range(13):flag += content[key[j]-1][(list[j]+i) % 26]print(flag)

 

 从出来的结果找出有意义的那串字符即为明文!!!

常见图形密码—猪圈密码

 变种形式1:

变种形式2:

圣堂武士密码:

旗语密码:

盲文:

精灵语密码:

 

跳舞的人密码:

夏多密码:(下面的四个是方向指示符号,向上,右,下,左旋转,碰到表示将密文整体进行该方向的旋转)

银河密码:

相关文章:

密码学---常见的其他密码

✨费纳姆密码&#xff1a;加解密都需要密钥&#xff0c;以二进制形式表示的密码。&#xff08;密钥多是一次性的&#xff0c;称位一次性密码本&#xff09; 加密过程&#xff1a; char_num {A: 1000001, B: 1000010, C: 1000011, D: 1000100,E: 1000101, F: 1000110, G: 100…...

Mysql8 主从复制主从切换(超详细)

文章目录 1 主从复制1.1 实施前提1.2 主节点配置(在192.168.25.91操作)1.3 从节点配置(在192.168.25.92操作)1.4 创建用于主从同步的用户1.5 开启主从同步1.5 主从同步验证 2 主从切换2.1 实施前提2.2 主节点设置只读(在192.168.25.91操作)2.3 检查主从数据是否同步完毕(在192.…...

8月29日wpf

小语 折磨我们的往往是想象&#xff0c;而不是真实。 学wpf 7.07 1.vs如何创建新项目&#xff1f; 退出&#xff0c;创建新项目&#xff0c;点c#&#xff0c;windows&#xff0c;进入界面 2.app.config在哪里&#xff1f; 好像只有这个。。。 试一下&#xff0c;不是 我…...

Android经典实战之SurfaceView原理和实践

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 SurfaceView 是一个非常强大但也相对复杂的 UI 组件&#xff0c;特别适用于对性能要求较高的绘制任务&#xff0c;如视频播放、游戏等。 1. Su…...

蜜罐的识别

蜜罐技术本质上是对网络攻击方欺骗的一项技术&#xff0c;通过在服务上布置一些仿真的系统、网络服务、或是模拟一些物联网设备来诱惑攻击方对其实施攻击从而捕获攻击行为&#xff0c;分析攻击手段与方式&#xff0c;或是收集一些攻击者的个人信息来进行分析画像达到精准溯源的…...

传感与检测技术

感知技术 传感器基本特性 静态特性 动态特性 传感器分类 电阻式传感器 通常情况下&#xff0c;电阻应变传感器的灵敏系数为常数 根据测量对象不同可分为...

监控平台之nodejs模拟后端接口

github&#xff1a;可以下载进行实验 https://github.com/Mr-Shi-root/sdk-platform/tree/master 1.配置node环境&#xff0c;安装express cors body-parser babel/cors body-parser - node.js 中间件&#xff0c;用于处理 JSON, Raw, Text 和 URL 编码的数据。cookie-parse…...

TCP 协议详解

目录 一.定义 二.TCP 协议报文格式 三.确认应答(ACK)机制 四.捎带应答 五.连接管理机制 六.滑动窗口 七.快重传 八.拥塞控制 九.延时应答 十.面向字节流 十一.粘包问题 十二.异常情况 十三.TCP 小结 一.定义 传输控制协议&#xff08;TCP&#xff0c;Transmissio…...

【转载】golang内存分配

Go 的分配采用了类似 tcmalloc 的结构.特点: 使用一小块一小块的连续内存页, 进行分配某个范围大小的内存需求. 比如某个连续 8KB 专门用于分配 17-24 字节,以此减少内存碎片. 线程拥有一定的 cache, 可用于无锁分配. 同时 Go 对于 GC 后回收的内存页, 并不是马上归还给操作系…...

TPM管理培训:学以致用,才是硬道理

全面生产维护&#xff08;TotalProductiveMaintenance,TPM&#xff09;作为一种先进的管理体系&#xff0c;正被越来越多的企业所采用&#xff0c;以期通过全员参与、全系统改善的方式&#xff0c;实现设备综合效率的最大化。然而&#xff0c;理论学习与实践应用之间往往存在鸿…...

2024年六月英语四级真题及解析PDF共9页

2024年六月英语四级真题及解析PDF共9页&#xff0c;真题就是最好的复习资料&#xff0c;希望对大家有所帮助。...

自闭症儿童语言干预

自闭症儿童的语言发展往往面临独特挑战&#xff0c;这不仅影响了他们的日常交流能力&#xff0c;也制约了其社交与认知的全面发展。因此&#xff0c;实施科学有效的语言干预对于促进自闭症儿童的语言能力至关重要。 语言干预应基于个性化原则&#xff0c;充分考虑每个孩子的兴…...

webpack基本使用(基础配置)

文章目录 概要理解 一、使用示例1.引入库2.创建config/webpack.dev.js 测试环境3.创建config/webpack.prod.js 正式环境3.创建eslintrc.js4.创建babel.config.js5.package.json5.main.js 总结 概要理解 vue或者react 通常用webpack作为打包工具&#xff0c;打包成浏览器识别的…...

在js渲染的dom中的事件中传递对象

在某些情况下&#xff0c;可能需要将整个对象或部分对象嵌入到 HTML 元素的属性中&#xff0c;可以将对象数据序列化为 JSON 字符串&#xff0c;存储在 data-* 自定义属性中。这样可以在事件中取出并解析对象数据&#xff1a; <!DOCTYPE html> <html lang"en&qu…...

服务器加速器如何应对大规模并行计算需求

服务器加速器&#xff0c;如GPU(图形处理单元)、FPGA(现场可编程门阵列)和TPU(张量处理单元)&#xff0c;在大规模并行计算需求中发挥着重要作用。它们通过提供高效的并行处理能力&#xff0c;大幅提升了计算性能&#xff0c;满足了许多领域对大规模并行计算的需求。下面详细介…...

C++/Qt 多媒体(续四)

一、前言 前边讲述到了Qt的两项独特的模块编程支持的另一项内容——多媒体编程,上篇文章具体讲述的包括采集和播放原始音频相关类的概述,而本章开始主要概述多媒体编程实现的功能中的最后两项:播放视频文件和通过摄像头拍照和录像。 对于上篇内容的示例全部代码,可…...

怎样把flv转换成mp4格式?8种可以推荐的视频转换方法

怎样把flv转换成mp4格式&#xff1f;MP4格式因其广泛的兼容性&#xff0c;几乎可以在所有设备和媒体播放器上顺畅播放&#xff0c;这极大地方便了用户的观看体验。与flv文件相比&#xff0c;MP4通常能更有效地压缩视频文件&#xff0c;既能保持较高的画质&#xff0c;又能显著减…...

【2024数学建模国赛赛题解析已出】原创免费分享

2024数模国赛赛题已正式发布 数模加油站初步分析评估了此次竞赛题目&#xff1a; A题&#xff1a;偏数学仿真建模&#xff0c;难度偏难&#xff0c;适合数学专业背景的同学 B题&#xff1a;评价决策类&#xff0c;自由度大&#xff0c;容易水&#xff0c;适合基础不太好的同…...

Windows安装使用Docker

配置Dorker环境 启用或关闭windows功能 安装wsl 以管理员身份打开windows PowerShell&#xff0c;安装相关配置 下载docker应用程序 Releases tech-shrimp/docker_installer (github.com) 安装Docker 指定安装位置 默认双击程序就开始安装了&#xff0c;要安装在指定位置…...

【wsl2】从C盘迁移到G盘

参考大神 C盘的ubuntu22.04 非常大&#xff0c;高达30g 迁移后就只有几百M了&#xff1a; 右键有一个move没有敢尝试 迁移过程 Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved.Install the latest PowerShell for new features and improveme…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...

2025-05-08-deepseek本地化部署

title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek&#xff1a;小白也能轻松搞定&#xff01; 如何给本地部署的 DeepSeek 投喂数据&#xff0c;让他更懂你 [实验目的]&#xff1a;理解系统架构与原…...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码&#xff0c;使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...

ZYNQ学习记录FPGA(二)Verilog语言

一、Verilog简介 1.1 HDL&#xff08;Hardware Description language&#xff09; 在解释HDL之前&#xff0c;先来了解一下数字系统设计的流程&#xff1a;逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端&#xff0c;在这个过程中就需要用到HDL&#xff0c;正文…...