cipher = Cipher.getInstance("Blowfish");
这将引发异常 java.security.NoSuchAlgorithmException:未找到 Cipher Blowfish 实现。
我检查了 local_policy.jar 和 US_export_policy.jar 是否存在,它们在安装 java 时没有改变。什么会导致这个问题?
编辑:
Object[] o = Security.getAlgorithms("Cipher").toArray();
for (int i=0; i<o.length; i++) {
System.out.println((String)o[i]);
}
当我运行这段代码时,我得到的列表中没有“Blowfish”,但在 DES 或 RSA 等算法名称中,有一些未知名称,例如“1.2.840.113549.1.1.7”等。为什么那里没有 Blowfish 或它隐藏在这些数字中?
最佳答案
cipher = Cipher.getInstance("Blowfish")
仅适用于 Android 2.3 及更高版本,所以您的目标可能是 Android 2.3 以下?
编辑:如果你想构建到 2.3 或者比方说 4.0 ICS,但也支持较低的设备,你可以将这样的东西添加到你的 Manifest.xml 中:
<uses-sdk android:minSdkVersion="3" />
<uses-sdk android:targetSdkVersion="14" />
唯一的问题是你必须提供 Blowfish 作为一个选项,我认为这对于 2.3 以下的任何人来说都不是加密方法的有效选择(不可点击/变灰)。测试一下!构建它,并在各种 SDK 版本上试用它。祝你好运!
关于java - android中的河豚加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629577/