您好我只是想加密的字符串,但我想扭转解密方法来创建恰好加密的密钥创建加密使用字符串
解密是
public string newSample(string s)
{
byte[] buffer = Convert.FromBase64String(s);
Encoding utF8 = Encoding.UTF8;
byte[] bytes1 = utF8.GetBytes("key1");
byte[] bytes2 = utF8.GetBytes("key2");
RijndaelManaged rijndaelManaged1 = new RijndaelManaged();
rijndaelManaged1.Mode = CipherMode.CBC;
rijndaelManaged1.Padding = PaddingMode.Zeros;
rijndaelManaged1.BlockSize = 128;
rijndaelManaged1.KeySize = 128;
RijndaelManaged rijndaelManaged2 = rijndaelManaged1;
ICryptoTransform transform = (ICryptoTransform)null;
transform = rijndaelManaged2.CreateDecryptor(bytes2, bytes1);
byte[] bytes3 = (byte[])null;
using (MemoryStream memoryStream = new MemoryStream())
{
using (CryptoStream cryptoStream = new CryptoStream((Stream)memoryStream, transform, CryptoStreamMode.Write))
{
cryptoStream.Write(buffer, 0, buffer.GetLength(0));
cryptoStream.FlushFinalBlock();
}
rijndaelManaged2.Clear();
bytes3 = memoryStream.ToArray();
}
return new string(Encoding.UTF8.GetChars(bytes3));
}
,才有可能扭转码并创建加密密钥?如果是的话 加密应该看起来像这个解密方法?
感谢
我建议抛出这个代码路程,由[jbtule的回答(http://stackoverflow.com/a/10366194/445517)取代它的相关的问题。不像你的代码,它实际上是安全的。 – CodesInChaos 2014-09-06 19:42:44
感谢链接CodesInChaos但我去与此代码为某种原因cheerz – Gayan 2014-09-06 19:53:13
几个缺陷:1)无MAC =>通过主动攻击2)否IV断裂,泄漏共同前缀3)零填充是不可逆的4 )密钥应该是二进制的,而不是文本5)正如jon所说,你不能使用UTF8作为密文。 – CodesInChaos 2014-09-06 20:43:29