how to add bouncycastle algorithm to android
我正在尝试使用Bouncycastle算法编写一个小型应用程序,从BouncyCastleProvider.java中说我们必须在运行时通过以下代码导入和添加提供程序
错误-导入org.bouncycastle无法解析; 导入期间
错误-BouncyCastleProvider无法解析为类型; 调用addProvider时
虽然Android 1.6 SDK未提供bouncycastle,但还是考虑单独安装。 我应该怎么做?
如果Bouncycastle与SDK一起提供,我应该怎么做才能避免这些错误?
我在winXP上使用的是Android 1.6,eclipse-V3.4.0。
提前致谢
最好还是使用SpongyCastle,因为Android附带的BC既残旧又旧。
您不需要显式添加BouncyCastle作为提供程序。如您所说,它已经包含在Android中。
这是获取BouncyCastle AES密码的方法,
1 | SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithSHA256And256BitAES-CBC-BC"); |
如果查看BouncyCastleProvider.java,则会看到对PBEWithSHA256And256BitAES-CBC-BC的引用,以及BouncyCastle提供的其他一些密码。
我对这个特定的图书馆不熟悉。但是,以下是有关如何将以" jar"文件形式提供的库包含到Android项目中的一般说明。
下载jar文件并将其放在工作站上的某个位置。您可能要放在要安装它的项目的根目录中,或者放在根目录中的" lib"目录中。
在Eclipse中,选择Project-> Properties,然后选择Java Build Path。然后单击"添加外部Jars",导航到.jar文件的放置位置,选择它并单击"打开"。
现在,键入或粘贴一些尝试使用jar中的类的代码。如果幸运的话,灯泡图标将出现在左边缘。单击此按钮将提示您将正确的Import语句添加到.java文件的顶部。
此时仍有某些地方可能出错。该库可能会使用Android不提供的java。*或javax。*内容(它只是这些库的一个子集)。它还可能具有其他自身的库依赖关系。 .jar可能与Android平台不兼容还有其他原因。
另请注意,它将增加.apk的大小以容纳新内容。
您将需要使用其他名称编译BC库,因为它会与Android中已经存在的内置BC发生冲突-重新编译并引用为BC2或org.BouncyCastle2.x