.NET和Javascript中的简单字符串加密

Jon*_*han 9 .net javascript c# string encryption

我正在开发一个ASP.NET MVC应用程序,其中我想使用C#加密服务器上的短字符串,并将其发送到客户端.

然后在客户端,它将通过Javascript代码解密.

有关如何实现这一点的任何想法?

您是否知道一种简单的加密算法(不一定是防弹安全的),可以很容易地从C#转换为Javascript,反之亦然?

注意:我可以在C#中完全执行此操作并通过Ajax进行解密,但我不希望这样做,因为我希望尽可能减少网站流量.

Joh*_*sch 10

听起来你想要混淆或编码,而不是加密.Base64编码应该在这里运行良好.结果看起来不像电子邮件地址,编码过程很快.

在C#中,您可以使用:

string emailAddress = "abc@example.com";
string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(emailAddress));
Run Code Online (Sandbox Code Playgroud)

您可以使用此JavaScript函数对其进行解码:

function Base64Decode(encoded) {
   var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      enc1 = keyStr.indexOf(encoded.charAt(i++));
      enc2 = keyStr.indexOf(encoded.charAt(i++));
      enc3 = keyStr.indexOf(encoded.charAt(i++));
      enc4 = keyStr.indexOf(encoded.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < encoded.length);

   return output;
}
Run Code Online (Sandbox Code Playgroud)

C#应用程序将字符串编码abc@example.comYWJjQGV4YW1wbGUuY29t,JavaScript版本将解码YWJjQGV4YW1wbGUuY29t回来abc@example.com.


CMS*_*CMS 9

简单的XOR密码怎么样?

这两个实现是完全兼容的:


Sam*_*ron 6

System.Security.Cryptography具有准备使用一堆对称的(和不对称的)encrytion算法.(对于超级安全的东西使用aes)

您应该能够找到大多数匹配的Javascript实现(这里是JS中的一些aes实现)

注意:如果您打算使用基于私钥的加密,请记住,您的网页将嵌入密钥,这意味着一切都变得毫无意义,因为任何有权访问该页面的人都可以进行解密,充其量你会让屏幕刮刀的生命变得更加困难.如果你的目标是制作屏幕刮刀,那么你可以使用遮挡算法.对于没有javascript引擎的屏幕抓取工具,任何简单的实现都会非常不切实际:

例如.

function samObsfucated()
{
    return("s" + "a" + "m" + "@" + "s" + "." + "com");
}
Run Code Online (Sandbox Code Playgroud)

然后onload使用这些函数的输出填充您的电子邮件字段.

Javascript加密有一个非常好的用例,用于存储用户ala clipperz密码的软件