0

我正在尝试加密/解密数据以在查询字符串中使用。

大多数情况下,加密数据以“等号”符号“=”结尾

以下是加密字符串的一些示例

 1 - LS07D43u6Hs= 
 2 - oHPgq6hz0A0=  
 3 - 4ugeuARQvXw=   
 abc - gZfrQVAk9Ic=  
 encode me - RfSQYXX1P4MU7LhMsfsG8w==

我从这里复制了代码并进行了一些更改。

http://www.deltasblog.co.uk/code-snippets/basic-encryptiondecryption-c/

        byte[] inputArray = UTF8Encoding.UTF8.GetBytes("encode me");
        TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
        tripleDES.Key = UTF8Encoding.UTF8.GetBytes("abcd123456Idlaaz");
        tripleDES.Mode = CipherMode.ECB;
        tripleDES.Padding = PaddingMode.PKCS7;
        ICryptoTransform cTransform = tripleDES.CreateEncryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
        tripleDES.Clear();


        Response.Write(Convert.ToBase64String(resultArray, 0, resultArray.Length)); 

我尝试更改 Key、PaddingMode、CipherMode,但没有运气。它总是在最后返回 = 。请帮我。

4

1 回答 1

3

最后的等号不是由加密算法生成的。
它是创建 base 64 编码字符串时填充的标准过程。您可以在为什么 base64 编码的字符串末尾有一个 = 符号中找到更多信息

这里也很好地解释了这个结束机制http://en.wikipedia.org/wiki/Base64

于 2013-10-30T09:32:29.553 回答