这种字符串如何解码

2017-07-20 18:10:36 +08:00
 vvchen

抓包分析到客户端 post 这样的数据:

{"json":"uTJERxU6soa0lbJZaAWEYGGwp4xOe0nN\/wORZ1Rnf5EJ2Z\/yc8UOWD1SDzTwXf1B"}
{"json":"ppWzKIag6L\/nM6Dp5JFR1QAKcvxK9DFwIy49LbCHUWedfnvGhs4xYuivb+oF0q0r7TmofgGpk8tGUik1nB5HSilHzZDQIb2ay577V2bs8dKQKy\/KfWMLs1\/sVqg+Lgsvps7RTyK7jvxkTkZ6LldrkQ=="}

感觉是 base64 编码的,可解码总是无效或者为乱码。观察到里面总是会出现一组\和 /字符。请教各位,这究竟是什么编码格式,以及能否还原出原始的数据?

3100 次点击
所在节点    程序员
16 条回复
sagaxu
2017-07-20 18:15:35 +08:00
这跟 JSON 有什么关系呢?
vvchen
2017-07-20 18:19:08 +08:00
@sagaxu 不好意思,标题起的不恰当。只是它用了 json 作为 key。
vvchen
2017-07-20 18:22:11 +08:00
@sagaxu 而且我揣测它编码前的数据可能是 json 格式的,所以好奇如何能还原出原始的数据。
xspoco
2017-07-20 18:24:26 +08:00
iyangyuan
2017-07-20 19:31:47 +08:00
反编译客户端
Kisesy
2017-07-20 19:46:54 +08:00
通常 bash64 还用来编码二进制数据,所以不一定可读
Kisesy
2017-07-20 19:48:18 +08:00
擦,写错 base 了
zbinlin
2017-07-20 20:25:37 +08:00
base64 binary 吧
eminemcola
2017-07-20 20:33:33 +08:00
解码 16 位格式试试
vvchen
2017-07-20 20:50:19 +08:00
@Kisesy @zbinlin 我试了转成二进制,但出来的 0、1 数据,是不是并没有什么意义?所以这个问题就无解了?

@eminemcola 我再试试
Kisesy
2017-07-20 20:58:55 +08:00
@vvchen 不是这个二进制....十六进制数据能明白吧
weyou
2017-07-20 20:59:12 +08:00
base64 本来就包含 /啊,\是 json 加的转义符。不可读很可能原本就是 binary 数据,一般可读字符串是没有必要进行 base64 编码的。还有种可能是使用了自定义的码表。
FanWall
2017-07-20 21:10:56 +08:00
看两段数据的长度( n*128 ),很大可能性是 AES/DES 之类的对称加密,找到密钥就行了。
vvchen
2017-07-20 21:33:20 +08:00
@iyangyuan 以反编译,但无从找起。这种情况下,有没有什么逆向技巧?
@Kisesy 你说的是二进制文件的概念吗?但是这样的话,是不是也就意味着无法还原原数据?
@weyou 如果是二进制文件的话,有没有可能还原可读格式的文件?
@FanWall 对 AES/DES 不是很了解。但发现类似于第一组数据,变动的只有最后十几个字符。像这种情况,会是 AES/DES 加密出来的结果吗?
FanWall
2017-07-23 01:41:45 +08:00
@vvchen
“变动的只有最后十几个字符”
应该说这正是这两种对称加密的鲜明特性,以我的经验七八成的可能性就是 AES/DES 啦。
vvchen
2017-07-23 10:02:50 +08:00
@FanWall 确实,是 DES3。醍醐灌顶,十分感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/376776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX