我想问一个简单的问题。
Android 中是否包含 OpenSSL?如果是这样,有没有人可以说如何调用openssl函数,例如AES加密?
先感谢您。
以下是一些有用的链接: 如何在 Android 中使用 Open SSL。对于 AES 加密,请查看 android 支持的 javax.crypto 包。javax.crypto 也支持 AES 算法。这是 Android 中那个javax.crypto的链接。确保在提问之前进行一些研究。至少尝试展示您尝试过的内容并具体说明您的问题。
您的问题“Android 中是否包含 OpenSSL?”的答案。没有”。默认情况下,OpenSSL 显然不包含在 Android 中。
此外,如果您有兴趣朝这个方向发展,您可以自己轻松编译最新的 openSSL。您可以在此处按照我的构建说明进行操作
您可以使用以下代码找到它:
StringBuilder builder = new StringBuilder();
for (Provider provider : Security.getProviders()) {
builder.append("provider: ")
.append(provider.getName())
.append(" ")
.append(provider.getVersion())
.append("(")
.append(provider.getInfo())
.append(")\n");
}
String providers = builder.toString();
//now display the string on the screen or in the logs for debugging.
这会给你这样的结果:
provider: GmsCore_OpenSSL1.0 (Android's OpenSSL-backed security provider)
provider: AndroidOpenSSL1.0 (Android's OpenSSL-backed security provider)
provider: DRLCertFactory1.0 (ASN.1, DER, PkiPath, PKCS7)
provider: BC1.49 (BouncyCastle Security Provider v1.49)
provider: Crypto1.0 (HARMONY (SHA1 digest; SecureRandom; SHA1withDSA signature))
provider: HarmonyJSSE1.0 (Harmony JSSE Provider)
provider: AndroidKeyStore1.0 (Android AndroidKeyStore security provider)
此外,如果要实现,您可以编译自己的 openssl 库(最新),并且您必须编写自己的 ndk 代码(在 c/c++ 中),静态导入此已编译的 openssl 库。