如何解码FU开头==结尾、含\x转义的密文得到JSON内容
编码类型判定与解密方法
核心特征匹配
你遇到的是外层Base64编码+内层单字节异或(XOR)加密的组合处理方式,对应特征完全吻合:
- 字符串以
FU开头、以==结尾是标准Base64的正常表现:==是Base64的末尾填充符,开头FU是密文前两个字节0x15、0x4D的Base64映射结果,不是特殊编码标识 - Base64解码后出现大量
\x开头的转义序列,是因为解码得到的是加密后的二进制字节流,大部分字节不属于可打印ASCII范围,并不是解码错误
已知信息梳理
- 待处理原始字符串:
FU0UCBIEERoBAUZdUF1RDg== - 直接Base64解码得到的二进制密文:
\x15M\x14\b\x12\x04\x11\x1A\x01\x01F]P]Q\x0E - 明确解密后输出为JSON格式,参考样例:
{"position":999}
解密操作步骤
- 完成Base64解码拿到二进制字节数组,这一步你已经完成
- 计算异或密钥:因为JSON固定以
{作为首字符,对应ASCII码为0x7B,取密文第一个字节0x15和0x7B做异或运算,即可得到固定单字节密钥 - 对密文的每一个字节,都和计算出的密钥做异或运算,得到明文字节
- 将明文字节转为字符串,即可得到最终的JSON结果
内容的提问来源于stack exchange,提问作者JimmyJS
相关产品推荐
相关产品推荐

