我正在尝试加密/解密要在查询字符串中使用的数据。
大多数情况下,加密数据以"等号"="结尾
以下是加密字符串的一些示例
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));
我试图更改密钥,填充模式,密码模式,但没有运气。 它总是在最后返回 =。 请帮助我。
末尾的等号不是由加密算法生成的。
这是创建 base 64 编码字符串时填充的标准过程。有关详细信息,请参阅为什么 base64 编码字符串末尾有一个 = 符号
这种结束机制在这里也得到了很好的解释 http://en.wikipedia.org/wiki/Base64