首页 > 其他分享 >B@se-还原错误字母表转码的base64编码

B@se-还原错误字母表转码的base64编码

时间:2025-01-13 11:14:14浏览次数:1  
标签:编码 guess 转码 alphabet base64 str 密文 se

题目:

密文:MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbvD==
JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs****kxyz012789+/

oh holy shit, something is missing...

第一行是密文,有明显的Base64编码特征(等号结尾)

第二行是大小写字母、数字、+、/,有明显的Base64编码表特征,但是多了四个星号,这个可以和标准编码表对比找到缺失部分,四个星号分别代表j、u、3、4,但顺序未知。

标准编码表:

standard_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'

接下来只需要将题目中的“密文”转化为使用正确编码表编码的“密文”,再转码为明文可得flag。脚本如下:

import base64
import itertools

encoded_str="MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbvD=="
standard_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
chars='ju34'
for comb in itertools.permutations(chars,4):
    wrong_alphabet_guess='JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs'+''.join(comb)+'kxyz012789+/'
    mapping = {wrong_alphabet_guess[i]: standard_alphabet[i] for i in range(len(wrong_alphabet_guess))}
    corrected_str = ''.join(mapping.get(c, c) for c in encoded_str)
    decoded_bytes = base64.b64decode(corrected_str)

    print(decoded_bytes)

找到最像的一个

标签:编码,guess,转码,alphabet,base64,str,密文,se
From: https://www.cnblogs.com/Draina/p/18668219

相关文章

  • ElasticSearch在Windows环境搭建&测试
    引子也持续关注大数据相关内容一段时间,大数据内容很多。想了下还是从目前项目需求侧出发,进行相关学习。Elasticsearch(ES)是位于ElasticStack(ELKstack)核心的分布式搜索和分析引擎。Logstash和Beats有助于收集、聚合和丰富您的数据并将其存储在Elasticsearch中。Kibana使......
  • RewardedVideoAd.onClose
    RewardedVideoAd.onClose(functionlistener)小程序插件:不支持功能描述监听用户点击关闭广告按钮的事件。参数functionlistener用户点击关闭广告按钮的事件的监听函数参数Objectres属性类型说明最低版本isEndedboolean视频是否是在用户完整观看的情......
  • GBase DATE(expr) 函数详解
    DATE(expr) 是一个用于从日期或日期时间表达式中提取日期部分的日期和时间函数。它在数据分析、报告生成、数据清洗、时间序列处理以及各种需要处理和转换日期数据的场景中非常实用。通过 DATE 函数,用户可以轻松地获取日期部分,忽略时间部分,从而简化日期相关的计算和比较。1. ......
  • Microsoft Sql Server 2019 函数理解
    说到函数,首先和存储过程作个比较吧,两者有一个共同点都是预编译优化后存储在磁盘中,所以效率要比T-SQL高一点点。值得注意的是,存储过程可以创建或访问临时表,而函数不可以;同时函数不可以修改表中的数据,或调用产生副作用的函数,比如rand,newid,getdate(当然这并不是绝对的);但是函......
  • Gbase CURTIME() 函数详解
    CURTIME() 是一个用于获取当前系统时间的日期和时间函数。它在数据分析、报告生成、时间序列处理、事件调度以及各种需要动态时间获取的场景中非常实用。通过 CURTIME() 函数,用户可以轻松地获取系统的当前时间,以实现时间的动态计算和管理。1. CURTIME() 函数的基本语法CURT......
  • Syncfusion Essential Studio Flutter 2024 Crack
    SyncfusionEssentialStudioFlutter2024CrackSyncfusionEssentialStudioFlutter2024Volume4addstrackballforindividualseries,enablingprecisedatatrackingandchartinteractions.SyncfusionEssentialStudioFlutter(availableaspart......
  • Qwen2ForSequenceClassification文本分类实战和经验分享
    本文主要使用Qwen2ForSequenceClassification实现文本分类任务。文章首发于我的知乎:https://zhuanlan.zhihu.com/p/17468021019一、实验结果和结论这几个月,在大模型分类场景做了很多实验,攒了一点小小经验。1、短文本1)query情感分类,一般不如BERTps:结论和,https://segmentfault......
  • 如何使用 Logstash 8 连接 Easysearch
    背景很多小伙伴都在使用Logstash,随着各家安全扫描、安全策略的加固,不少小伙伴已经开始使用Logstash8了。在使用Logstash8连接Easysearch的时候可能会遇到问题,比如下图。提示连接的不是兼容版本的Elasticsearch。解决方法有两种两种方法对Logstash和Logstash-o......
  • Rust 和 Tesseract OCR 实现英文数字验证码识别
    Rust是一门注重内存安全并具有高性能的系统编程语言。它通过并发机制和零成本抽象提供了强大的功能。我们可以利用Rust的库来调用TesseractOCR实现验证码识别。一、安装与配置安装TesseractOCR同样,首先要在系统中安装TesseractOCR。Ubuntu(Linux):bashsudoaptupda......
  • Go 语言与 Tesseract OCR 实现英文数字验证码识别
    Go语言本身不直接支持图像识别,但可以通过调用TesseractOCR引擎来进行图像识别。我们可以使用Go的tesseract包来实现这一功能。一、安装与配置安装TesseractOCR首先,你需要在系统中安装TesseractOCR。安装方法和前面一样:Ubuntu(Linux):bash更多内容访问ttocr.com或联......