我正在尝试加密/解密要在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,但没有运气。它总是返回=最后。请帮帮我。
答案 0 :(得分:3)
最后的等号不是由加密算法产生的。
它是在创建base 64编码字符串时填充的标准过程。
您可以在Why does a base64 encoded string have an = sign at the end
这里也很好地解释了这个结束机制http://en.wikipedia.org/wiki/Base64