实战某东APP submit 过程中的 jwData 加密 并附java简单算法实现
起因:最近seckill貌似很火,不过看分享的大多是 网页版,所以想着分析下app看能否实现,在某东app 抓包过程中发现 submitOrder 过程中有一处加密是 jwData ,现在简单的进行定位分析,
看加密格式,明显是 base64编码过后的,现在先定位下关键字
定位到拼接明文的地方,格式是 lng + "_" + lat + "_" + networkType + "_null" 之后再传入下层处理
可以看到加密算法应该就是 Des了上面一串应该是秘钥,继续进入下一层
定位到这里基本都清楚了,明文秘钥以及IV最终自己使用Java进行简单实现:
private static final String DES = "DESede";
public static final byte[] IV_BYTES = {0, 0, 0, 0, 0, 0, 0, 0};
private static final String PADDING = "DESede/CBC/PKCS5Padding";
public static byte[] encrypt(byte[] bArr, byte[] bArr2, byte[] bArr3) throws Exception {
if (bArr3 == null) {
bArr3 = IV_BYTES;
}
SecretKey generateSecret = SecretKeyFactory.getInstance(DES).generateSecret(new DESedeKeySpec(bArr2));
IvParameterSpec ivParameterSpec = new IvParameterSpec(bArr3);
Cipher instance = Cipher.getInstance(PADDING);
instance.init(1, generateSecret, ivParameterSpec);
return instance.doFinal(bArr);
}
结果是:0ZFXGMj9AdZz/7Lh5gug5gJcT8vKYzxULXnWwrYlh8Q=和 抓包得到的 jwData一致,至此,完美搞定此加密参数
首发:吾爱
APP也可以啦!!!! 关键还是封包里的sign吧 佩服楼主的分析研究 感谢楼主分享 不错不错,学到了{:1_918:} 表示一脸懵逼
学习了,学习了 大佬研究下sign:lol 秒杀软件