我在我的Android代码中遇到了RSA问题,该问题在Crash casting AndroidKeyStoreRSAPrivateKey to RSAPrivateKey中有所描述,并且接受的答案表明了这个解决方案:
Cipher some_cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
它可以工作,但是如果我使用它,Android Studio突出显示此代码为“Cipher#getInstance不应该使用ECB作为密码模式调用或不设置密码模式,因为android上的默认模式是ECB,这是不安全。“
使用它真的安全吗?还有其他选择吗?
答案 0 :(得分:3)
一般来说,这个通知是正确的,但在这种特殊情况下(使用RSA)它是无关紧要的。
通常,您会对大型数据进行加密,从而产生多个加密块。如果您在这种情况下ECB肯定会导致不安全的加密。
但是您使用的是RSA。通常RSA不用于加密多个块,它用于加密一个块(例如,用于加密一个AES密钥)。 AFAIR RSA甚至拒绝加密多个块。在这种情况下,选择欧洲央行并不重要 - 它从未发挥作用。