[BJDCTF 2020]base??(古典密码)

news2024/12/24 20:20:15

题目:

从题目我们看出dict是一个python的字典,但与原始的base64的表不同,所以我们想到通过替换原始的表,来对密文解密。

my_dict={0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11: 'A', 12: 'B', 13: 'C', 14: 'D', 15: 'E', 16: 'F', 17: 'G', 18: 'H', 19: '7', 20: '8', 21: '9', 22: 'P', 23: 'Q', 24: 'I', 25: 'a', 26: 'b', 27: 'c', 28: 'd', 29: 'e', 30: 'f', 31: 'g', 32: 'h', 33: 'i', 34: 'j', 35: 'k', 36: 'l', 37: 'm', 38: 'W', 39: 'X', 40: 'Y', 41: 'Z', 42: '0', 43: '1', 44: '2', 45: '3', 46: '4', 47: '5', 48: '6', 49: 'R', 50: 'S', 51: 'T', 52: 'n', 53: 'o', 54: 'p', 55: 'q', 56: 'r', 57: 's', 58: 't', 59: 'u', 60: 'v', 61: 'w', 62: '+', 63: '/', 64: '='}

keys=''
for key in my_dict:
    keys+=my_dict[key]
print("keys=",keys)
string1=keys[:64]
print("string1=",string1)
import base64
import string
str1='FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw'

string2='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'##标准的 base64 字符串 string2
print(base64.b64decode(str1.translate(str.maketrans(string1,string2))))
print("映射",(str.maketrans(string1,string2)))
print("映射2",(str1.translate(str.maketrans(string1,string2))))
'''
`str.maketrans(string1, string2)` 方法用于创建一个映射表,其中 `string1` 是原始字符集,`string2` 是目标字符集。这个方法返回一个映射表,该表可以用于 `str.translate()` 方法来进行字符替换。

这里的映射原理是将 `string1` 中的每个字符映射到 `string2` 中的对应位置的字符上,实现一一对应的替换关系。具体来说,如果 `string1` 和 `string2` 的长度不同,那么将会以较短的字符串长度为准,多余的字符将被忽略。

举个简单的例子:

假设有两个字符串 `string1 = "ABC"` 和 `string2 = "XYZ"`,那么映射关系就是:

- 将字符 `'A'` 替换为 `'X'`
- 将字符 `'B'` 替换为 `'Y'`
- 将字符 `'C'` 替换为 `'Z'`

如果我们使用 `str.maketrans(string1, string2)`,它将返回一个映射表,该表可以将字符串中的 `'A'` 替换为 `'X'`,`'B'` 替换为 `'Y'`,`'C'` 替换为 `'Z'`。

这个映射表可以用于 `str.translate()` 方法,用来对字符串进行替换操作,实现自定义的字符映射关系。
'''

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

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

相关文章

2024五一杯ABC题资料合集+代码+参考论文!!!

一.赛题思路 (赛题出来以后第一时间在群内分享) 二.比赛日期和时间 比赛开始时间:2024年5月1日(周三)10;00 比赛结束时间:2024年5月4日(周六)12:00 三.将在明天分享的资料合集如下 4.我们这边会分享22年的题目完整全部的过程 5.数学建模的29个通用模型及MATLAB…

吴恩达2022机器学习专项课程(一)7.2 逻辑回归的简化成本函数

问题预览/关键词 本节课内容逻辑回归的损失函数简化之后的形式是?为什么可以简化?成本函数的通用形式是?逻辑回归成本函数的最终形式是?逻辑回归为什么用对数损失函数计算成本函数?为什么不直接给出逻辑回归损失函数的…

Makefile 快速入门

参考自:Makefile 20分钟入门,简简单单,展示如何使用Makefile管理和编译C代码_哔哩哔哩_bilibili 注: 视频中用的是C,博主这里用C语言实现 喜欢老师的于老师的还请多多点赞,觉得博主写得不错的,也可以点赞、收藏哦 本…

面对网络安全,做好风险评估对企业会带来哪些帮助

随着信息技术的飞速发展,网络安全问题日益凸显,成为企业不容忽视的重要议题。企业作为社会经济活动的主要参与者,其网络安全不仅关系到自身的生存与发展,更与国家的经济安全、社会稳定息息相关。因此,企业必须高度重视…

UG NX二次开发(C#)-去掉模型更新的警报提示窗口

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2 、解决方案 1、前言 在我的微信群《UG NX二次开发学习讨论》中有个群友发出一个问题,就是参数化模型修改后,有时更新是正确的&…

STM32开启停止模式,用外部中断唤醒程序运行

今天学习了一下STM32的停止模式,停止模式下,所有外设的时钟和CPU的电源都会被关闭,所以会很省电,打破这种停止模式的方式就是外部中断可以唤醒停止模式。要想实现这个功能,其实设置很简单的,总共就需要两步…

【数据结构初阶】时间复杂度和空间复杂度详解

今天我们来详细讲讲时间复杂度和空间复杂度,途中如果有不懂的地方可翻阅我之前文章。 个人主页:小八哥向前冲~-CSDN博客 数据结构专栏:数据结构【c语言版】_小八哥向前冲~的博客-CSDN博客 c语言专栏:c语言_小八哥向前冲~的博客-CS…

OceanBase 助力同方智慧能源,打造安全可靠、高性能的能源数据架构

本文作者:丁泽斌,同方智慧能源数据库工程师 业务背景 作为同方股份有限公司旗下的领军企业,同方智慧能源集团矢志成为全球领先的综合智慧能源解决方案提供商。凭借中核集团和清华大学的科技实力,专注于向建筑、交通、工业、北方供…

Linux工具篇 之 vim概念 操作 及基础指令讲解

学校不大 创造神话 讲桌两旁 陨落的王 临时抱佛脚 佛踹我一脚 书山有路勤为径 游戏玩的很起劲 想要计算机学的好,我的博客列表是个宝 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–❀–❀…

linux的lcd屏幕调试

x2600-lcd的sat101cp50d24b1屏幕的驱动调试 1.硬件关联 屏幕型号:sat101cp50d24b1 原理图: 很显然,这是RGB666显示格式的屏幕,RGB管脚DATA0-DATA17--为数据线 DEN 数据使能线。 VSYNC 垂直同步信号线。 HSYNC 水平同步信号线。…

vue-print-nb插件来实现打印功能——打印布局及尺寸处理

之前写过一篇文章是关于vue-print-nb插件实现打印功能, vue插件——vue-print-nb 实现打印功能:http://t.csdnimg.cn/ahuxp 但是在实际使用过程中,打印的效果不尽如人意。下面把打印页面和遇到的问题做一下汇总: 1.html代码——给打印元素绑…

vivado Aurora 8B/10B IP核(6)-本地流量控制(Native Flow Control)

Aurora 8B/10B 协议包括本地流控制(NFC)接口,其允许接收机通过指定必须 放入数据流的空闲数据跳数来控制接收数据的速率。 甚至可以通过请求发送器临时发送空闲(XOFF) 来完全关闭数据流.NFC 通常用于防止 FIFO 溢出条…

Python | Leetcode Python题解之第52题N皇后II

题目: 题解: class Solution:def totalNQueens(self, n: int) -> int:def backtrack(row: int) -> int:if row n:return 1else:count 0for i in range(n):if i in columns or row - i in diagonal1 or row i in diagonal2:continuecolumns.add…

【Unity基础】TextMeshPro组件学习过程记录

目录 1.TextMeshPro组件渲染创建文本RTL Editor字体Font Asset字体加粗,下划线等字体大小控制字体颜色控制字体渐变控制字符间隔、单词间隔、行间距、段落间距控制WrappingUV映射控制代码 2.TextMeshPro组件AssetFace InfoGeneration Setting 3.使用Dynamic SDF Sys…

Java基础_JDBC

JDBC 概述步骤项目创建流程代码改进 使用Statement的问题:SQL注入(1)SQL注入(2)PreparedStatement1、防止SQL注入2、批处理 事务连接池建立数据库连接实现 日志 概述 Java数据库连接,(Java Dat…

机器学习:驱动现代交通运输革命的AI智慧引擎

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

POCEXP编写—多线程

POC&EXP编写—多线程 1. 前言2. 多进程&多线程2.1. 多进程2.1.1. 案例 2.2. 多线程2.2.1. 案例: 2.3. POC的案例(模板) 3. UA头设置3.1. 随机UA头3.1.1. 案例3.1.2. 模板拼接 4. 代理Proxy4.1. 单代理案例4.2. 多代理案例4.2.1. 请求…

2024年最新linux安装harbor

linux安装harbor Harbor官方介绍这里就不照搬了,说直白点:Harbor就是私有的 Docker Hob 镜像仓库。 前置条件:安装好docker,docker-compose 1、安装harbor离线包(在线安装形式不稳定,由于网络原因中间可能中断&…

C++ 小游戏:战斗之旅

一、游戏名称:战斗之旅 游戏规则 角色选择:玩家可以选择不同的角色,每个角色都有不同的属性和技能。商城:玩家可以访问商城购买不同的装备,包括武器和回复物品。战斗:玩家可以与其他角色进行战斗。在战斗…

盲人定位设备:为视障人士独立出行铺设智慧之路

在快速发展的数字时代,科技的每一次跃进都在悄然改变我们的生活方式。对于盲人朋友而言,一款名为“蝙蝠避障”集实时避障于一身的盲人定位设备,正成为他们探索世界、实现独立出行的有力助手。这款设备,不仅重新定义了无障碍出行的…