【发布时间】:2011-07-26 22:20:36
【问题描述】:
我之前看到过这个问题,尽管在这些情况下,发帖人想在面向公众的网站上加密某些内容(通常是 url),而回答大多是“不要!”。然而,就我而言,JavaScript 将存储在一个非公开的内部系统中,所以我认为我有更多的余地。类似问题的一个示例是:How to encrypt url in javascript and decrypt in c# - 答案实际上并没有回答问题。
我的“JavaScript”实际上是“SuiteScript”,它被定义为“SuiteScript 是一种基于 JavaScript 的 API,它使开发人员能够扩展 NetSuite”,其中 NetSuite 是托管的 CRM 包,因此任何用于加密我的代码字符串将对所有人隐藏,但我公司的员工除外(因此被认为是安全隐藏的)。
我想做的是:
- 生成查询字符串(例如 userid=guidValue&firstName=stringValue&company=stringValue&...),
- 使用安全的方法(例如 AES256、RSA,任何人认为安全的方法)对其进行加密,
- 在我的基于 C# 的网站上调用网页,在 URL 中传递此字符串(例如 mysite.com/mypage.aspx?encStr=encryptedString)
- 让 C# 页面对其进行解密,分离名称/值对并对其进行处理。
我用谷歌搜索并搜索了 stackoverflow,但没有找到任何文章或答案提供了两种技术都可以使用的加密方法的明确说明。有人有这样的指示吗?
【问题讨论】:
-
你想保护谁的信息?如果它是一个内部系统,难道不是每个人都应该被隐含地信任吗?如果不是,那么它是非公开的这一事实绝对没有区别。如果不向 Web 浏览器客户端发送所有代码以找出如何欺骗安全性,您就无法在 Web 浏览器客户端进行加密。
-
如果您通过 ssl 发布表单,那么您不需要加密消息。为此进行显式加密将是过度的。
-
HTTPS 不是一个选项,因为我无法控制托管的 NetSuite 服务器。当字符串被发送到我的基于 C# 的网站时,我正在保护信息不被窥探,这不是内部的。我不需要发送找出安全欺骗所需的代码。我认为如果在 JavaScript 中使用了“密钥”并且 C# 可以使用相同的“密钥”(无需发送),那么可以进行解密
-
澄清一下,您的接收网站是否托管在 NetSuite 服务器上?
-
不,接收网站托管在其他地方。我明白你的意思,但在这种情况下,HTTPS 仍然不是一个选项。
标签: c# javascript encryption aes