@geelaw 我姑且是学过密码学的。 根据我学到的原理,rsa 加密时所取的参数都是确定值,在明文不变的情况下计算出来的结果不可能会发生变化。 你说的“每次加密结果不同”貌似是同属于非对称密码体制下的椭圆曲线加密算法才有的性质。 椭圆曲线加密除了明文和一些必要参数,还用到了一个随机选取的 k 值。这个 k 值不需要让解密者知道,不会影响解密,但 k 值的变化会影响密文的结果。
@geelaw #27 Android 和 Java 上面实现不同,Android 默认没有用随机 iv 填充。这是实现的差异,两者都是符合规范的。spec 里原文是 If this cipher requires any algorithm parameters that cannot be derived from the given key, the underlying cipher implementation is supposed to generate the required parameters itself (using provider-specific default or random values)