最近工作上要对接第三方渠道商竞价广告业务, 基本能有竞价能力的广告商, 在上报广告价格的时候都会对价格进行加密, 这时候大多数广告商都是用了AES
算法. 和第三方对接的时候, 由于广告商使用的加密模式不一样, 加上有些广告商连SDK
也没有, 常常只有示例的Java
客户端代码.
Java
代码, 但是我们应该可以从代码中分析出来使用的算法, 首先要确定的有 ECB
, BCB
, CFB
, OFB
)pkcs5padding
, pkcs7padding
, zeropadding
)Base64UrlSafeEncode
AES
算法, 发现很多还是使用ECB
模式, 尽管存在一定被破译的风险. 但是因为使用起来太简单, 不需要IV
, 只要一个秘钥, 所以很多第三方都使用这种方式CFB
模式, 虽然是随机秘钥, 但是没有把IV
传递给知盟, 我猜它们就没验证这个加密的参数CBC
模式, 虽然也用IV
, 但是我猜它们为了简单易用化, 把秘钥也当做IV
传递, 所以是一个固定的IV