如何从服务器端加密数据并将其传递到客户端(javascript)并解密和使用它

Posted

技术标签:

【中文标题】如何从服务器端加密数据并将其传递到客户端(javascript)并解密和使用它【英文标题】:How to encrypt data from server side and pass it to client side(javascript) and decrypt and use it 【发布时间】:2014-04-24 08:18:53 【问题描述】:

我在 mvc 的服务器端生成了一个 json 字符串,我通过简单地将其呈现为 html(纯文本)在客户端访问该 json 字符串。

这个 json 字符串包含一些不应该与所有人共享的重要值。 如果有人查看源页面,它将是可见的。

如何隐藏我的 json 字符串?

我想到了加密和解密,但是在客户端解密值是加密的 服务器端。我觉得有点奇怪。

【问题讨论】:

你想保护谁?如果您不希望外部方读取通过 Internet 传输的信息,您应该使用 TLS/HTTPS 连接。如果您不希望有效用户访问 json 数据,那么您大多不走运。您可以通过稍微模糊数据来让他/她感到困难,但最终如果您的客户端应用程序可以读取,那么用户也可以。 连加密都不行? 加密是关于保护数据免受没有加密密钥的人的侵害。但是,如果您的 javascript 代码以某种方式可以访问密钥,那么用户也可以提取它,例如通过查看 javascript 源代码或使用调试器来查找所用变量的值。 ohhh 是的.. 没想到这一点.. “运气不好” 那就用 Https 吧.. 谢谢 @Perseids 我认为您应该将其发布为答案。 【参考方案1】:

你想保护谁?如果您不希望外部各方阅读通过 Internet 传输的信息,您应该使用 TLS/HTTPS 连接。如果您不希望有效用户访问 json 数据,那么您大多不走运。您可以通过稍微模糊数据来让他/她变得困难,但最终如果您的客户端应用程序可以读取,那么用户也可以。

加密可以帮助您解决这种混淆,但最终它是为了保护数据免受没有加密密钥的人的侵害。如果您的 javascript 代码以某种方式可以访问密钥,那么用户也可以提取它,例如通过查看 javascript 源代码或使用调试器来查找所用变量的值。

【讨论】:

【参考方案2】:

如果您在 .net 平台上,那么您可以使用会话状态来存储该值。会话中的值存储是安全的,因为服务器以加密形式存储它们。然而,快速和快速的方法是存储在视图状态中,但很容易被困(不安全)。

【讨论】:

请注意,您实际上并没有将任何(可用)数据传输到客户端,这似乎是 rusty 想要做的,在浏览器中显示它。

以上是关于如何从服务器端加密数据并将其传递到客户端(javascript)并解密和使用它的主要内容,如果未能解决你的问题,请参考以下文章

我如何从客户端(html)拍照并将其保存到服务器端(Python)

在 React(客户端)中上传 .json 文件并将其发送到 Node(服务器端)

客户端服务器加密

gomain函数中如何动态获取数据

如何将数据从客户端(android-java 应用程序)发送到解析服务器,对其进行处理,将其保存在 parse-dashboard 中并将结果发送回客户端?

如何从客户端(android-java app)发送数据到解析服务器,处理它,将其保存在parse-dashboard中并将结果发送给客户端?