请选择 进入手机版|继续访问电脑版
发新帖

请教 AES 加密 URL 的一种不一致情况

[复制链接]
4959 6

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
key 是 3c837d501a8f49b1原始字符串是 http://172.19.38.84/xwado/我用 Python 通过 AES128 加密后转 base64 的结果是:3O6CsFgm69Jg9l_I-MpEpE_FMPrDrIBFmfbOY78S0zU=但是对方提供的正确加密后的结果是:           3O6CsFgm69Jg9l/I+MpEpHsIZ5h2dSWcZNMvAKVSCDQ
找了一圈,如果我用普通字符串加密能和对方对得上,但一涉及到 URL 如“ http://127.0.0.1/xxxx/” 之类的就直接不一致了,请教下各位大神是什么原因?

举报 使用道具

回复

精彩评论6

citrus  新手上路  发表于 2017-10-6 00:53:52 | 显示全部楼层
1. 你的 base64 结果中出现了 _ ,这是非标准 base64 字符
2. 你给出的正确加密结果根本就不是合法的 base64 结果,连 base64 decode 都无法完成。。。

举报 使用道具

回复
oott123  新手上路  发表于 2017-10-6 11:55:12 | 显示全部楼层
解密看下呗。

举报 使用道具

回复
yushiro  新手上路  发表于 2017-10-6 19:40:18 | 显示全部楼层
我猜测,楼主最重要的一点可能没有提,就是加密后的密文,是通过 url 传输的,你需要 urlencode。
而且,这个 encode 不是随便拿一个就能用,你自己仔细研究一下区别吧。

举报 使用道具

回复
citrus  新手上路  发表于 2017-10-7 16:03:26 | 显示全部楼层
由于你用的是 ECB 的加密模式,对比你们双方的密文:
3O6CsFgm69Jg9l/I+MpEp  E/FMPrDrIBFmfbOY78S0zU=
3O6CsFgm69Jg9l/I+MpEp  HsIZ5h2dSWcZNMvAKVSCDQ

可以看出你的加密前半段是完全没有问题的,所谓的正确解密结果少了一位。也就是说,你们双方加密的明文后半段出现了差错。看看是不是什么不可见字符或者错误吧。
按照你给出的原始字符"http://172.19.38.84/xwado/" 和 key "3c837d501a8f49b1" (均不包含引号),正确的 ECB 加密结果应该是

3O6CsFgm69Jg9l/I+MpEpE/FMPrDrIBFmfbOY78S0zU=

举报 使用道具

回复
goofool  新手上路  发表于 2017-10-7 20:26:02 | 显示全部楼层
加密模式,填充,偏移

举报 使用道具

回复
gamexg  新手上路  发表于 2017-10-8 16:45:47 | 显示全部楼层
@goofool #5 另外还有可能末尾的 \0。

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表