TripleDES在加密数据中返回“相等”符号

时间:2013-10-30 09:30:05

标签: c#-4.0 encryption tripledes

我正在尝试加密/解密要在Querystring中使用的数据。

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

结尾

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

 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,但没有运气。它总是返回=最后。请帮帮我。

1 个答案:

答案 0 :(得分:3)

最后的等号不是由加密算法产生的。
它是在创建base 64编码字符串时填充的标准过程。 您可以在Why does a base64 encoded string have an = sign at the end

找到更多信息

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