gpt4 book ai didi

java - 加密和解密两个系统之间的消息

转载 作者:行者123 更新时间:2023-12-02 10:22:45 27 4
gpt4 key购买 nike

我有以下系统

Android 应用 -> kafka -> 监听器服务 (Java)。

我想确保此过程中数据的完整性。

我想在 Android 应用程序中加密消息,将其插入主题,然后让监听器拾取它并解密消息。

我想知道系统之间加密和解密的最佳方法(算法和实践)是什么。这可以通过简单的方式实现(无需证书或 key )吗?

假设有 5 个移动应用程序向代理推送消息。

最佳答案

I would like to make sure that there is data integrity in this process.

如果您担心确保传输过程中的消息完整性,则在大多数情况下使用 TLS(ssl、https)即可解决问题。如果您需要其他组件(kafka->Java)之间的端到端安全性(签名、加密消息),则需要对消息进行签名。在大多数情况下,您应该可以选择第一个选项 (https)。

Can this be achieved in a simple way (without certs or keys)?

PKI(证书和 key )使我们能够确保完整性和 secret 性,而无需对 secret 进行硬编码(这对于移动应用程序来说不是很明智)。您已经拥有 SSL 的开箱即用库,因此可以将其视为“简单的方法”。构建自定义协议(protocol)来签名和验证消息只会更加复杂,而且可能不太安全。

I would like to know what would be the best way (algorithm and practice) to encrypt and decrypt between the systems.

对于基本的传输安全,我建议依赖 TLS,您仍然需要对用户进行身份验证(用户名、密码?)以确保客户端的身份。 TLS 提供直至 SSL 终止点(https 服务器、kafka 监听器等)的安全通道。

如果您需要其他组件(kafka->Java)之间的端到端安全性(签名、加密消息),可以使用一些标准来加密和签署消息,例如用于 Web 服务的 WS-Security,或者您可以使用签名和加密的 JWT 来传递消息。

但是 - 您必须在客户端和验证后端之间安全地交换 key (使用单独的服务或某种 key 交换协议(protocol))。

关于java - 加密和解密两个系统之间的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54207584/

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