gpt4 book ai didi

java - Camel PGP 加密和对称 key

转载 作者:行者123 更新时间:2023-11-30 08:00:13 27 4
gpt4 key购买 nike

我的问题是camel pgp实际上是如何工作的,如果我的推论完全正确,我不是java程序员,所以请注意以下一些文本可能没有意义。

它是否使用对称 key 加密有效负载,然后使用公钥加密对称 key 并将两者发送到目的地(例如 ftp 服务器),然后目的地解密对称 key ( session key ),然后用它解密有效负载?或者它是否使用公钥加密有效负载,仅此而已?此外,每条消息都会生成任何 key 吗?换句话说,假设一个目录中有20个文件,camel逐一处理它们,这是否意味着对称 key 将生成20次,或者只生成一次然后重复使用?

我正在尝试找出加密消息的最佳解决方案,似乎仅使用对称 key (AES)就足够了,因为我可以通过安全通道将其传输一次,仅此而已,但是实现似乎是与 PGP 相比,这是痛苦的(我必须实现一个 Java 工具来生成、保存到文件并加载 AES key ,使用初始化 vector 、HMAC 等),但另一方面,如果后者每次创建不同的 key ,它就会在我的例子中效率很低。

最佳答案

在 OpenPGP 中,您有两种选择,Apache Camel 允许这两种选择:

  • 混合加密

    session key (每次生成一个新 key )使用公共(public)/私有(private)(非对称)加密技术进行加密。然后,该 session key 用于使用对称加密技术对实际信息进行加密。

    这种方法结合了公共(public)/私有(private)和对称加密的优点:它支持 OpenPGP 的高级 key 管理功能,但不会遭受使用公共(public)/私有(private) key 加密加密大量数据的巨大成本。

    每次生成新的随机 session key 非常便宜,因为它们大多是随机数据 block ,并且不涉及公钥/私钥对的复杂计算。

    使用 GnuPG(可能还有所有其他实现),在使用 gpg --encrypt 时默认使用此方法。 。如果您指定收件人的公钥,但没有密码短语,则您将使用此方法。

  • 对称加密

    OpenPGP 还允许直接从密码生成 session key ,直接用于对称加密。这会禁用 OpenPGP 的 key 管理功能。直接对称加密很少与 OpenPGP 一起使用,但有时可能很方便。

    使用 GnuPG,这是通过调用 gpg --symmetric 来实现的。如果您加密(但不签名),但被要求输入密码,则您可能会使用对称加密。

在 OpenPGP 中,公钥/私钥加密永远不会直接用于加密输入。

关于java - Camel PGP 加密和对称 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32074365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com