换表BASE64
换表Base64
原理
换表base64只是在原有base64加密下进行了一些字符变换。
过程如下:
将字符串进行base64加密
自定义一个编码表
找到base64加密后的字符串的各个字符在标准表中的下标
这些下标对应在自定义表中的字符替换原有字符
直接上源码:
import base64
dic = 'JKLMNOxyUVzABCDEFGH789PQIabcdefghijklmWXYZ0123456RSTnopqrstuvw+/=' # 自定义编码表
o_dic = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' # 标准表
cy = 'flag{this is flag!}'.encode() # 需要加密的字符串
base64_cy = base64.b64encode(cy).decode()
# 下面开始换表
crypto = '' #最后的密文
for i in base64_cy:
s = o_dic.find(i)
crypto += dic[s]
print(crypto)
# 结果:aWRiaq3nbxmTUxmTUxa2IPdigF==
解码
我们知道密文、自定义编码表、标准表,很容易就能解密
import base64
dic = 'JKLMNOxyUVzABCDEFGH789PQIabcdefghijklmWXYZ0123456RSTnopqrstuvw+/=' # 自定义编码表
o_dic = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' # 标准表
cy = 'aWRiaq3nbxmTUxmTUxa2IPdigF==' # 密文
flag = '' # 原文
for i in cy:
flag += o_dic[dic.find(i)]
print(base64.b64decode(flag).decode())
# 结果:flag{this is flag!}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Cristrik010
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果