IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> base循环解码工具 -> 正文阅读

[开发工具]base循环解码工具

本工具支持base16、base32、base64混合编码后的字符串解码,过程中全自动识别字符串编码格式,无需手动一次次复制~

无需在pycharm中运行,使用argparse库使其能在cmd中参数化运行,并将主要功能全部封装为函数,可在其他py文件中调用:

python basefamily.py -h    #显示帮助
python basefamily.py -t "aWxvdmV5b3U="    #对双引号内字符串进行解码
python basefamily.py -f "/User/xx/Desktop/base.txt"    #对指定文件进行解码

#也可不加任何参数,直接进入主函数运行

只是一次小练手,期间发现网上很多对base64编码中“=”号的规则理解有误,应该用getsizeof()进行字节数判断,而非len()。没有做健壮性测试,需要的可自行完善。

import base64
import sys
import argparse
Step = []

#循环爆破模块,同时修正字符串
def base(strs):
    try:
        if strs == b64de(strs):
            strs += "="
            base(strs)
        else:
            strs = b64de(strs)
            Step.append('64-->')
            base(strs)
    except:
        try:
            strs = b32de(strs)
            Step.append('32-->')
            base(strs)
        except:
            try:
                strs = b16de(strs)
                Step.append('16-->')
                base(strs)
            except:
                if Step:
                    print("[+]解码结束!结果为:\n" + strs)
                    step = ''.join(Step)
                    print("[+]步骤: " + step[:-3])
                else:
                    strs += "="
                    base(strs)

#base64解码模块
def b64de(strs):
    if sys.getsizeof(strs) % 3 == 1:
        strs += "=="
    elif sys.getsizeof(strs) % 3 == 2:
        strs += "="
    #origStr = bytes(strs, encoding='utf8')
    bcode = base64.b64decode(strs).decode()
    return bcode

#base32解码模块
def b32de(strs):
    origStr = bytes(strs, encoding='utf8')
    bcode = str(base64.b32decode(origStr).decode())
    return bcode

#base16解码模块
def b16de(strs):
    origStr = bytes(strs, encoding='utf8')
    bcode = str(base64.b16decode(origStr).decode())
    return bcode

#cmd调用模块
def getbase(text,file):
    if text:
        base(text)
    elif file:
        with open(file, 'r') as file:
            base(file.read())
    else:
        base(input("请输入base字符串:"))

paser = argparse.ArgumentParser(description='base_boom')
paser.add_argument('--text', '-t',nargs='?', help='可选参数,用于传入basecode,建议双引号框选')
paser.add_argument('--file', '-f',nargs='?', help='可选参数,用于从指定文件读入basecode,请用绝对路径')
args = paser.parse_args()

getbase(args.text, args.file)

?

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-07 13:55:13  更:2022-02-07 13:56:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:41:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码