Simple string encryption in .NET and Javascript

后端 未结 6 1499
深忆病人
深忆病人 2020-12-05 12:30

I\'m developing an ASP.NET MVC application in which I want to encrypt a short string on the server, using C#, and send it to the client-side.

Then on the client-side

6条回答
  •  -上瘾入骨i
    2020-12-05 12:38

    It sounds like you want an obfuscation or encoding, not encryption. Base64 encoding should work well here. The result will look nothing like an email address, and the encoding process is fast.

    In C#, you can use:

    string emailAddress = "abc@example.com";
    string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(emailAddress));
    

    And you can use this JavaScript function to decode it:

    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;
    }
    

    The C# application encodes the string abc@example.com into YWJjQGV4YW1wbGUuY29t, and the JavaScript version will decode YWJjQGV4YW1wbGUuY29t back into abc@example.com.

提交回复
热议问题