题目:

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: '='} chipertext:
FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw

底下一串说是密文,那就按上面的字典先还原成明文,还原完是一串数字

[16, 36, 41, 4, 30, 52, 16, 48, 23, 53, 36, 48, 29, 21, 61, 43, 19, 38, 61, 23, 23, 53, 17, 40, 12, 23, 13, 31, 24, 35, 17, 51, 25, 21, 61, 45, 24, 23, 1, 61]

不难想到用正确的base64码表转换为base64编码形式

QkpEe0QwX1kwdV9rTm9XX1RoMXNfYjRzZV9tYXB9

再进行一次解码即可得到结果

b'BJD{D0_Y0u_kNoW_Th1s_b4se_map}'

脚本如下:

# 定义字典
import base64
# Base64编码表
base64_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
char_to_num = {
'J': 0, 'K': 1, 'L': 2, 'M': 3, 'N': 4, 'O': 5, 'x': 6, 'y': 7, 'U': 8, 'V': 9,
'z': 10, 'A': 11, 'B': 12, 'C': 13, 'D': 14, 'E': 15, 'F': 16, 'G': 17, 'H': 18,
'7': 19, '8': 20, '9': 21, 'P': 22, 'Q': 23, 'I': 24, 'a': 25, 'b': 26, 'c': 27,
'd': 28, 'e': 29, 'f': 30, 'g': 31, 'h': 32, 'i': 33, 'j': 34, 'k': 35, 'l': 36,
'm': 37, 'W': 38, 'X': 39, 'Y': 40, 'Z': 41, '0': 42, '1': 43, '2': 44, '3': 45,
'4': 46, '5': 47, '6': 48, 'R': 49, 'S': 50, 'T': 51, 'n': 52, 'o': 53, 'p': 54,
'q': 55, 'r': 56, 's': 57, 't': 58, 'u': 59, 'v': 60, 'w': 61, '+': 62, '/': 63,
'=': 64
} # 密文
ciphertext = "FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw" # 将密文转换为数字
numeric_representation = [char_to_num[char] for char in ciphertext] # 输出转换结果
print(numeric_representation) # 将每个数字映射到Base64编码表中的字符
encoded_string = ''.join(base64_table[num] for num in numeric_representation) # 输出Base64编码字符串
print(encoded_string) # 将Base64编码字符串转换为字节
decoded_bytes = base64.b64decode(encoded_string) # 输出解码后的字节数据
print(decoded_bytes)

这是base-还原数字查正确码表再解码的更多相关文章

  1. 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

    最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...

  2. java IO之 编码 (码表 编码 解码 转换流)

    编码 什么是编码? 计算机中存储的都是二进制,但是要显示的时候,就是我们看到的却可以有中国 ,a  1 等字符 计算机中是没有存储字符的,但是我们却看到了.计算机在存储这些信息的时候,根据一个有规 则 ...

  3. cloudermanger安装时需要安装或彻底正确卸载再安装orcal-java7-installer、oracle-java7-set-default(ubuntu14.04版本)(图文详解)

    不多说,直接上干货! 安装orcal-java7-installer和oracle-java7-set-default 安装JDK1.7 (所有节点)CDH要求至少是Oracle JDK7,Ubunt ...

  4. 从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接)

    从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接) 一.总结 一句话总结:最好的是这个:"SELECT * FROM table WHERE id >= (( ...

  5. Apose.Cell导出的Excel数字格式正确显示

    使用Apose.Cell导出Excel时假如导出的如上图:边框左上角有绿色三角形区域,选中某个区域会出现感叹号询问是否要将文本转换为数字 那么在代码中使用PutValue方法时,后面的bool参数设为 ...

  6. 修復jquery的tablesorter对加了千分位的数字无法正确排序的bug

    找到函数: function getElementText(config, node) { var text = ""; if (!node) return "" ...

  7. Sql Server,如何去含有非数字的nvarchar,再转为为数值

    菜鸟一枚,今天做项目时,突然遇到一个问题: 在数据库中中存放的nvarchar类型的“时间”,例如:‘08:00’,而我需要进行时间的范围比较,这时就想到了将nvarchar类型转化为int类型. 这 ...

  8. 吃透Javascript数组操作的正确姿势—再读《Js高程》

    Javascript中关于数组对象的操作方法比较多也比较杂,正好再次捡起<Javascript高级程序设计>来读,把它们一一总结梳理了一下: 方法类别 方法名称 方法描述 参数 返回值 备 ...

  9. C++字符数字的编码(Encode)与解码(Decode)

    在日常应用中,我们常用结构体或者类来存储一条信息,这种方式很方便,但是不利于数据的传输.例如在网络编程中,我们需要将结构中的数据转化为字节流才能进行传输,我们可以利用memcpy强行将结构化的数据转化 ...

  10. ORACLE 对一个表进行循环查数,再根据MO供给数量写入另一个新表

    一. 加工处理后要变成如下效果 create table test1 (sonum varchar2(10),lineid varchar2(10),qty int ,qty2 int ,remark ...

随机推荐

  1. Qt编写的项目作品28-视频监控显示安卓版

    一.功能特点 1.1 基础功能 支持各种音频视频文件格式,比如mp3.wav.mp4.asf.rm.rmvb.mkv等. 支持各种视频流格式,比如rtp.rtsp.rtmp.http等. 本地音视频文 ...

  2. 对CGAL5.0及以后版本编译的说明

    CGAL5.0及以后版本只有头文件,没有库文件了.这意味着CGAL无需编译,只需安装好CGAL的依赖项即可.类似Eigen库.

  3. 得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现

    本文由得物技术WWQ分享,原题"客服发送一条消息背后的技术和思",本文有修订和改动. 1.引言 在企业IM客服场景中,客服发送一条消息的背后,需要考虑网络通信.前端展示.后端存储以 ...

  4. 概率图模型&机器学习 -- 精确推断方法 -- 变量消去(Variable Elimination)和信念传播(Belief Propagation)

    参考资料 西瓜书 An introduction to hidden Markov model -- Rabiner, Juang [机器学习][白板推导系列][合集 1-33]_哔哩哔哩_bilib ...

  5. 前端vue获取excell中的数据

    这个功能我觉得还是挺好的,比如要批量上传一些数据,然后不用一个一个填入直接写个excell表然后一起上传,然后我在这边记录一下 首先用到了xlsx这个插件 下载 npm i xlsx --save 使 ...

  6. JVM最全知识体系考点复盘总结

    1:什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现 ...

  7. biancheng-Spring MVC-HandlerAdapter

    二.HandlerAdapter 根据 Handler 来找到支持它的 HandlerAdapter,通过 HandlerAdapter 执行这个 Handler 得到 ModelAndView 对象 ...

  8. .net工作流elsa-触发器

    必备知识 触发器会用到书签和调度,这个在我的另外两篇文章中有分析. 什么是触发器 可以直接调用流程引擎的IWorkflowRuntime获取IWorkflowClient,然后调用它的CreateAn ...

  9. useMemo和useCallback的使用

    useMemo const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); 把"创建" ...

  10. 平滑升级mariadb

    问题 Centos7自带的MariaDB版本是5.5 ,版本过于老旧,现想升级到最新版本,且数据不丢失 措施 备份原来的数据 mysqldump -u root -p --all-databases ...