首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的OpenPGP

Java中的OpenPGP
EN

Stack Overflow用户
提问于 2019-02-13 09:41:18
回答 2查看 1.7K关注 0票数 1

我知道OpenPGP是“一组加密/签名标准格式的定义”

我最近建议有人使用默认的Java JCA而不是赏金城堡作为他们的加密库,这样他们就不必使用任何外部库了。但是他们问我Java是否支持OpenPGP。我不知道那个问题的答案。我甚至不知道这个问题是什么意思。

我只想知道supporting OpenPGP是什么意思

我们可以使用像RSA这样的标准算法在Java中加密/签名。那么,支持OpenPGP还需要什么呢?

没有人推荐JCA作为这个问题的答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-13 10:38:58

问:我只想知道支持OpenPGP意味着什么?

Ans :意味着提供者库应该遵循RFC 4880中提到的开放的PGP标准。

没有人推荐JCA作为答案..。

它非常复杂,如per-如何通过java的密码扩展加密PGP消息?

Bouncy城堡是的OpenPGP提供者之一。 您可以检查所有平台上的其他实现者,这里。 只要我学习,JCA作为密码学的体系结构就有它自己的设计原则。JCA是一个基本的密码框架,可以与JCE一起使用。

票数 2
EN

Stack Overflow用户

发布于 2019-02-13 15:33:55

不,Java是一个加密API。它不支持任何更高级别的协议,它只是提供了相对较高级别的加密算法访问权限。当然,在Java中实现了一个值得注意的协议:(单独) JSSE提供程序中的TLS。这需要支持使用/验证X.509v3证书等,但这就是其中之一(基于显而易见的原因,JCA非常支持将TLS作为主要用途)。

另一方面,OpenPGP是一种不受Java支持的协议规范。您需要在JCA之上构建一个协议实现来支持OpenPGP。然而,这正是Bouncy城堡所做的事情;它们的实现依赖于JCA接口,而不是Bouncy城堡“轻量级”API。因此,您可以使用OpenPGP库和JCA,例如,用于支持AES-NI或硬件密钥。只需确保您想要使用的JCA提供程序比任何第三方提供程序都具有更多的优先级,例如Bouncy城堡提供程序(将其添加到提供者列表的末尾!)。

当然,为了支持一些更深奥的选项(特别是对特定EC曲线的支持),您可能仍然希望在运行时中添加Bouncy城堡提供程序。OpenPGP的Maven模块仍然将Benniy城堡提供程序列为编译需求,但我不确定这不仅仅是用于测试,还是直接需要库。

一个可能很麻烦的问题是,PGP使用了它自己版本的CFB加密算法,在我所知道的运行时,它不能直接从默认提供程序中获得。因此,您可能需要包含该功能的库。这也可能意味着AES加速对库不可用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54666927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档