Tom*_*ros 22
首先:你需要什么库?
喜欢这些属性:
-Djavax.net.ssl.keyStore=keystore_path
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=truststore_path
-Djavax.net.ssl.trustStorePassword=trustword
Run Code Online (Sandbox Code Playgroud)
小智 8
Apache Tomcat Native Library就是解决方案。 https://github.com/apache/tomcat-native
它使用 OpenSSL 来实现 TLS/SSL 功能。您可以将它用作独立库(就像我所做的那样)或连接您的 Tomcat。它是一个开源项目,具有详细记录的 Java 代码。
为什么要原生tomcat?
JSSE 速度慢且难以使用。在我的项目中,为了获得最佳性能,我们决定为 OpenSSL 查找/编写 JNI 包装器,因为动态升级证书的可能性是一个问号,而且密钥存储太复杂。
由于 Bouncy Castle Crypto API 是用 Java 编写的,因此您不能指望获得最佳效率。
Tomcat Native 是一个包装器,因此您只能使用 OpenSSL 版本的功能。
最佳解决方案:使用 Java 的内置安全性来执行简单任务,或使用 BouncyCastle 来执行更高级的任务。
如果您必须使用 Java 中的 OpenSSL,您有 2 个选择:
每个人都在谈论BouncyCastle,但在我们的用例中,Gnu Crypto图书馆赢得了胜利.原生java.
对于一些客户,我们的数据库(aerospike)至少花费了10%的时间计算哈希值,因为这些实现很慢.我欢迎在每台Linux机器上都有可用的加密库的本机实现.我认为一些Java7虚拟机会包含更多算法,但我还没有看到它们.
小智 4
在提出任何建议之前,您需要回答几个重要问题
1)你真的想从JAVA中调用C(native)实现吗?
2)OpenSSL中有哪些功能是JCE和BouncyCastle无法解决的
3)范围是否仅限于使用OpenSSL生成的证书,解密OpenSSL生成的文件?
| 归档时间: |
|
| 查看次数: |
68231 次 |
| 最近记录: |