android - 如何在 Android 上使用 OpenSSL?

标签 android openssl

我有一个在 Android 应用程序中使用 OpenSSL 的项目。我对这个库有点困惑。 我读到 OpenSSL 已经存在于 Android 上......这是真的吗?如果是这样,我该如何使用它...

如果没有,这是否意味着我必须构建或从某个地方获取库...如果我需要这样做,有谁知道我在哪里可以找到它,以及我将如何构建以供使用使用 Android?

有人可以帮助我了解我需要什么才能开始......请不要害怕提供很多细节。 :)

提前致谢!

更新:我想做的是:

  • 创建 key 对
  • 获取私钥
  • 获取公钥
  • 加密文本
  • 解密文本(从另一个位置)

我正在使用 Mac OSX 和 Eclipse。

最佳答案

I read that OpenSSL already exists on Android... Is this true ? If so, how do I use it...

是的,但它是低级别版本。我相信它的 OpenSSL 0.9.8,但我可能是错的。如果可能的话,你应该尽量避免它。例如,您没有获得支持 TLS 1.2 的库,因为它是在 OpenSSL 1.0.1 中引入的。

OpenSSL 被加载到每个 Android 进程中。它是 Zygote fork 的副产品。因此,无论您是否需要,您始终拥有 OpenSSL 的低级别版本。

您通过 JNI 访问 OpenSSL。有很多关于它的 Stack Overflow 问题和答案。

要使用较新的 OpenSSL,您必须编写一个包装器 共享对象并链接到 OpenSSL 的静态库版本。然后,您可以通过包装器通过 JNI 访问较新版本的 OpenSSL。

What I want to do is:

  • Create the keypair
  • Get private key
  • Get public key
  • Encrypt a text
  • Decrypt the text

准备就绪后,如果遇到麻烦,您可能应该提出单独的问题。


有关交叉编译说明,请参阅 Android在 OpenSSL wiki 上。

关于android - 如何在 Android 上使用 OpenSSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072637/

相关文章:

android - 转换Android strings.xml文件的最简单方法

android - Flutter 将文本 onchange 值分配给变量

java - 哪个 Java 数据对象用于多维范围匹配?

java - 使用远程 WSDL 生成 stub (需要使用 SSL 证书的用户名和密码)?

c - 如何使用 openssl lib c 语言在算法 Diffie Hellman 中计算 2 个用户的共享 secret ?

ios - 使用 OpenSSL 从 SecKey 生成 CSR

openssl - 使用 rbenv 安装 Ruby 2.0.0-p247

Android:CollapsingToolbarLayout 和 SearchView,文本重叠

java - 如何在Fragment Activity中设置Java代码

openssl - 为什么签署证书需要 `-CAcreateserial` 参数?