【发布时间】:2017-01-20 09:37:18
【问题描述】:
我正在使用 BouncyCastle 进行加密/解密。有什么办法可以避免Cipher.getInstance("RSA/ECB/PKCS1Padding")?我想防止攻击者知道我正在使用哪些算法。我正在尝试这样的事情:
AsymmetricBlockCipher cipher = new PKCS1Encoding(new RSAEngine());
cipher.init(true, publicKey);
但我不知道我是否在正确的轨道上。
【问题讨论】:
-
那会有什么不同? java的代码可读性和string一样
-
我可以对 Java 代码使用混淆,但我不能对字符串做同样的事情。
-
这将无济于事,因为您无法混淆运行时库调用,混淆仅适用于您的代码(和包含的库),但对运行时的调用不会被混淆(所以 fx 你有类方法如
Utils.encrypt()它将变为a.a()但在方法主体中仍然会有new PKCS1Encoding(new RSAEngine());...无论如何专业的混淆器也会加密字符串 ... -
请问您使用的是哪个版本的BC?我读到它完全被 SpongyCastle 取代,是真的吗?
-
我使用的是 1.5 版。如果将其替换为 SpongyCastle,或者我将 SpongyCastle 用作 lib 而不是使用 BC,会有什么不同?
标签: android encryption bouncycastle