gpt4 book ai didi

java - JSON 数据加密/解密或键值对

转载 作者:行者123 更新时间:2023-11-28 19:29:27 25 4
gpt4 key购买 nike

我按照以下格式将客户端数据发布到服务器。

$.ajax({
type: 'post',
url: 'rest/server',
data: JSON.stringify(frmData),
contentType: "application/json; charset=utf-8",
success: function (data) {
...
}
});

发送到服务器(java)时加密/解密或生成键值对的最佳选项是什么,以避免发布不应该发送的数据?例如。如果表单元素包含属于用户的值,则该用户可以将其他值发送到服务器进行发布。

HTTPS/SSL 暂时不适合我。

最佳答案

Herr K收集了一些JavaScript加密方法here 。没有最好的,您需要根据与 Java 的互操作性来选择一个,但是 forge可能使用 RSA 和适当的填充方案为 Java 提供匹配功能。在我看来,这只能防止无法操纵请求的被动“攻击者”。

因此,您可以使用您选择的方法生成公钥/私钥对,并将公钥嵌入到客户端代码中。然后,您将在客户端上使用公钥进行加密,并在服务器上使用私钥进行解密。

您需要将 contentType 设置为 text/plain

要从服务器接收加密响应,应该稍微扩展一下。由于需要像 RSA 这样的非对称密码,客户端只有公钥,服务器有私钥,因此服务器只能使用 RSA 来签名消息,而不能加密它。因此客户端需要生成一个 AES key 并将其发送到服务器,服务器将使用该 key 进行安全响应。所谓安全,是指该消息将是保密的,但可能不真实。因此应该添加某种类型的 MAC。

为了进一步扩展,客户端在第一条消息上生成 AES key ,并使用该 key 加密实际消息,并另外使用 RSA 加密 AES key (这称为混合加密)。服务器使用 AES 加密的消息进行响应。对于 session 的其余部分,仅使用 AES。 RSA 仅在 session 开始时使用来建立 session key 。这是手工制作的 SSL,没有使用浏览器的 SSL 功能。

关于java - JSON 数据加密/解密或键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27153808/

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