TripleDES returning the “equal” symbol in encrypted data
我正在尝试加密/解密要在查询字符串中使用的数据。
大多数情况下,加密数据以"equal"符号"="结尾。
以下是加密字符串的一些示例
1 2 3 4 5 | 1 - LS07D43u6Hs= 2 - oHPgq6hz0A0= 3 - 4ugeuARQvXw= abc - gZfrQVAk9Ic= encode me - RfSQYXX1P4MU7LhMsfsG8w== |
我从这里复制了代码,做了一些修改。
1 2 3 4 5 6 7 8 9 10 11 | 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