在这个 stackoverflow 答案中,您可以看到打印所有可用提供程序和相应算法的代码:如何找出我的 JVM 支持的算法 [加密]?
我正在使用最新版本的 spongycastle,当我要求在 android 上获取 Spongycastle(“SC”)的算法时,我只得到了少数算法。事实上,我得到了这个非常有限的列表:
provider: SC
algorithm: PBEWITHMD5ANDDES
algorithm: PBEWITHSHA256AND192BITAES-CBC-BC
algorithm: OLDHMACSHA384
algorithm: PBEWITHHMACSHA
algorithm: PBEWITHMD5ANDDES
algorithm: PKCS12PBE
algorithm: PBEWITHSHAAND128BITAES-CBC-BC
algorithm: IES
algorithm: PKIX
algorithm: RFC3280
algorithm: ISO9797ALG3MAC
algorithm: PBEWITHHMACSHA1
algorithm: CERTIFICATE
algorithm: PBEWITHSHAAND40BITRC2-CBC
algorithm: PBEWITHSHA1ANDDES
algorithm: PBEWITHMD5AND256BITA
另一方面,当我要求在我的 linux 机器上获取 SC 的算法时,我得到了更多的算法。我没有数过它们,但它比你在上面看到的要长 10 倍。
其他所有算法都去了哪里??
因为这个项目不是一个典型的 android-java 项目,而是一个 Android-Scala 项目,所以我必须在每次执行时使用Proguard 。这对缺失的算法有什么作用还是别的什么?
Note1:我使用 SC 生成密钥对,使用 OpenPGP 加密和解密
注2:源代码经过测试,在使用 OpenJDK-6、RSA 算法用于公钥加密和 BLOWFISH 算法作为随机对称密钥的 linux 机器上完美运行