gpt4 book ai didi

c# - 如何在 JavaScript 中加密字符串并在 C# 中解密该字符串

转载 作者:可可西里 更新时间:2023-11-01 01:18:06 25 4
gpt4 key购买 nike

我之前看到过这个问题,尽管在这些情况下发帖者想要在面向公众的网站上加密某些内容(通常是 url),而回答大多是“不要!”。然而,在我的例子中,JavaScript 将存储在一个非公共(public)的内部系统中,所以我认为我有更多的余地。类似问题的一个示例是:How to encrypt url in javascript and decrypt in c# - 而答案实际上并没有回答问题。

我的“JavaScript”实际上是“SuiteScript”,它被定义为“SuiteScript 是一个基于 JavaScript 的 API,它使开发人员能够扩展 NetSuite”,其中 NetSuite 是一个托管的 CRM 包,所以任何用于加密我的代码字符串将对所有人隐藏,除了我公司的员工(因此被认为是安全隐藏的)。

我想做的是:

  1. 生成查询字符串(例如 userid=guidValue&firstName=stringValue&company=stringValue&...),
  2. 使用安全方法(例如 AES256、RSA,任何有人建议的安全方法)对其进行加密,
  3. 在我的基于 C# 的网站上调用一个网页,在 URL 中传递这个字符串(例如 mysite.com/mypage.aspx?encStr=encryptedString)
  4. 让 C# 页面对其进行解密,分离名称/值对并处理它们。

我用谷歌搜索并搜索了 stackoverflow,但没有找到任何文章或答案明确说明两种技术均可使用的加密方法。有没有人有这样的说明?

最佳答案

对称

最简单的方法是使用库作为 Stanford Javascript Crypto Library实现标准(在本例中为 AES)并在 C# 中使用相同的密码(通过 AesManagedAesCryptoServiceProvider)。

您将获得一个对称密码,但几乎只有一个参数( key )可供设置,两个库都能正常工作。

不对称

您也可以改用非对称(公钥)密码。掌握 JavaScript 代码的攻击者将能够向您的服务器发送精心设计的请求,但无法拦截其他请求。

有一个 RSA in javascript 的实现和 RSACryptoServiceProvider类在 .Net 中提供支持

A full example is available in Code project在 javascript 库中包含 RSA 的路径以支持填充(使用 .Net 实现时是必需的)

注意事项

这两种解决方案本身都容易受到重放的影响(攻击者拦截一个字符串并稍后将其发送回——可能多次——到服务器)

关于c# - 如何在 JavaScript 中加密字符串并在 C# 中解密该字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6830685/

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