RE常见编码和加密

base64

主要思想就是 3*8-->4*6

python 复制代码
table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
def encrypt(inputstr):
    # 输入字符是8的倍数,--> 3*8>4*6
    # {:0>8} 左边补0
    ascii=['{:0>8}'.format(str(bin(ord(i))).replace('0b','')) for i in inputstr]
    encrystr=''
    equalnum=0 #need add '='
    while ascii:
        # every three into a team
        subascii=ascii[:3]
        # short need add
        while len(subascii)<3:
            equalnum+=1
            subascii+=['0'*8]
        # apply substr to gather subascii
        substr=''.join(subascii)
        # do devied
        encrystrlist=[substr[x:x+6] for x in [0,6,12,18]]
        # six site change into dec,so not need 位数补齐
        encrystrlist=[int(x,2) for x in encrystrlist]
        if equalnum:
            encrystrlist=encrystrlist[0:4-equalnum]
        # 字符对应表映射
        encrystr+=''.join(table[x] for x in encrystrlist)
        # 每次取三个列表元素,对应while循环条件
        ascii=ascii[3:]
    encrystr+='='*equalnum
    return encrystr

def decrypt(inputstr):
    # six site a team
    ascii=['{0:0>6}'.format(str(bin(table.index(i))).replace('0b','')) for i in inputstr if i!='=']
    decrystr=''
    equalnum=inputstr.count('=')
    while ascii:
        # four site a team
        subascii=ascii[:4]
        substr=''.join(subascii)
        if len(substr)%8!=0:
            substr=substr[0:-1*equalnum*2]
        decrystrlist=[substr[x:x+8] for x in [0,8,16]]
        decrystrlist=[int(x,2)for x in decrystrlist if x]
        decrystr+=''.join([chr(x) for x in decrystrlist])
        ascii=ascii[4:]
    return decrystr
if __name__=="__main__":
    print(encrypt('a'))
    print(decrypt('YQ=='))

还有一个C版本的

Base64 加密解密的 C 语言实现和 python 实现_c语言 解析python base64-CSDN博客

相关推荐
Rabitebla5 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
Gary移动存储固件6 小时前
eMMC5.1协议中文学习讲解(6.6.17~6.6.22.4.6)
学习·ufs·emmc·nand·存储固件
杨凯凡6 小时前
IT日报|2026-11-13:GitHub 大规模凭据攻击、Signal 形式化验证、Claude 新模型与 AI 安全诉讼
人工智能·安全·github
一个天蝎座 白勺 程序猿6 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
P1Browser7 小时前
账号触发平台安全审核?拆解标准申诉流程与材料清单
大数据·人工智能·安全·多账号管理·指纹浏览器·账户安全·运营合规
楚山之石7 小时前
【Nat Biomed Eng】Connectome 2.0 超高梯度扫描仪:500 mT/m 与 600 T/m/s 把活体人脑微观结构分辨推进到亚微米级
图像处理·学习·数据分析·mri
坤坤子吖10 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
Fnetlink110 小时前
2026年企业安全组网供应商方案推荐
安全
如夏倾城12 小时前
基于格的密码学
安全·密码学·量子计算·可信计算技术
如夏倾城13 小时前
QUIC——HTTP/3 的唯一底层传输协议 及 0-RTT恢复
网络·网络协议·tcp/ip·安全·http