【问题标题】:Simple algorithm for encrypting with Javascript and decrypting with C#用 Javascript 加密和用 C# 解密的简单算法
【发布时间】:2011-05-10 12:08:21
【问题描述】:

我想用一个简单的 java 脚本算法加密 URL 中的一些文本,然后使用 C# 在 ASP.NET 页面后面的代码中对其进行解密。

ROT13 是一个不错的选择,但不幸的是,由于一些机密细节,我无法使用它。任何类似的事情都会有所帮助,但我不知道有名的。安全根本不是问题,只是以某种方式扭曲字符串并稍后检索它。

【问题讨论】:

  • 双ROT13?对不起,无法抗拒。用 Javascipt 加密是徒劳的,你无法充分隐藏加密算法,使其一文不值。
  • 我不想加密。我只是想绕过一些IDS/IPS。
  • @Xaqron - 你是说你希望我们帮助你闯入某人的系统吗?
  • 您的观点是您只需要一些自动化过程就不会被网络上的某些东西触发吗?那么ROT1呢? @Jamiec - 不正确,加密安全不应该依赖于算法知识。这只是通过默默无闻的安全。单向加密(散列)非常适合用于简单身份验证之类的事情,例如。如果您需要解密,那么您正在谈论 RSA 等,但 javascript 实现的安全性不会低于任何其他实现。但有点毫无意义,因为 SSL 做同样的事情。
  • 我知道你提到的所有事情。安全不是这里的重点。我需要默默无闻。这是对设备的一种误解,因为它对字词敏感,有时会丢失客户端请求。

标签: c# javascript encryption-symmetric


【解决方案1】:

你想对谁隐瞒?最终用户还是在网络上监听的人?鉴于任何人都可以使用基于浏览器的调试器并在运行时检查变量,因此依靠加密向最终用户隐藏信息并没有多大意义(除非您在将其发送到客户端之前对其进行加密)并且在它被送回之前不要解密它)。如果您想隐藏网络上的信息,那么使用 SSL 绝对是您的最佳选择。

【讨论】:

  • 我在 URL 中传输了一些变量,这些变量有时会被我客户端的 IDS/IPS 系统过滤。如果我只是在客户端扭曲查询字符串,然后将其发送到页面(并在那里解密),我的应用程序将毫无问题地工作。不幸的是,它检测到ROT13。
  • @Xaqron - 所以使用 ROT4 或 ROT22。还是它检测到所有的凯撒移位密码?
  • @Xaqron - 你试过 Base64 编码吗? webtoolkit.info/javascript-base64.html
  • 是的,所有著名的都已经尝试过了。我可以自己实现替换算法,但代码维护将成为一场噩梦。
  • 你确定它是由你认为的东西触发的吗?我只能想象扫描每一个 ROT + base64 + 任何其他常用的每一位文本的变体都会涉及到什么。这似乎不太可能,所涉及的处理将是巨大的,并且通过创建自己的变体很容易被击败(例如我在之前的建议中所说的 rotx++)。
【解决方案2】:

Javascript 和 C# 都支持多种不同的“真实”加密算法。

查看 Javascript DES 和 3DES
问题:Triple DES decryption in classic ASP?
例如:http://jsbin.com/oguye3
来源:http://cheeso.members.winisp.net/srcview.aspx?dir=DES

DES 有已知的弱点,但该库还支持更强大的 3DES。

还可以查看 Javascript 和 AES
Getting SlowAES and RijndaelManaged class in .NET to play together

这是浏览器中 AES 的工作演示:
http://jsbin.com/itiye5/3

【讨论】:

    【解决方案3】:

    如果您正在寻找 RSA(非对称加密),您可以使用 jsbn http://www-cs-students.stanford.edu/~tjw/jsbn/ javascript 库 用于客户端,标准 .Net RSACryptoServiceProvider 用于服务器端。

    他们之间确实非常合作。

    我希望这会有所帮助!

    【讨论】:

      【解决方案4】:

      Caesar cipher 是一种非常简单的文本加密方法。或者您可以简单地将文本编码为 BASE64,这也使人类难以阅读。 BASE64 自然不提供任何安全性,但您可以使用标准库进行编码和解码。

      【讨论】:

      • 或者如果两者都不能单独工作,您是否尝试过 ROT13 / BASE64 的组合?
      猜你喜欢
      • 2013-05-12
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      相关资源
      最近更新 更多