AES加密问题
非常想知道,下面这段AES加密代码,用C#解密中文没有问题,
可是通过JAVA解密出来的却是乱码?怎么办啊?
难道代码哪个地方有问题吗?
thanks,谢谢!
Please help me !
public byte[] Encrypt(byte[] EncryptDatas)
{
byte[] encodedbytes = null;
MemoryStream ms = null;
CryptoStream cs = null;
if (EncryptDatas.Length == 0)
{
return null;
}
//创建AES实例
AesManaged aesmanaged = new AesManaged();
//创建AES加密器
ICryptoTransform encryptor = aesmanaged.CreateEncryptor(key, iv);
try
{
using (ms = new MemoryStream())
{
using (cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
cs.Write(EncryptDatas, 0, EncryptDatas.Length);
cs.FlushFinalBlock();
ms.Position = 0;
encodedbytes = new byte[ms.Length];
ms.Read(encodedbytes, 0, encodedbytes.Length);
}
}
}
catch
{
encodedbytes = null;
}
finally
{
//释放对象
if(ms != null)
ms.Close();
if (cs != null)
{
cs.Clear();
cs.Close();
}
}
return encodedbytes;
}
[解决办法]
能想到的就是gb2312/unicode/ansi之类的编码问题。
[解决办法]
C#转码啊,SYSTEM.ENCOREDING,这个命名空间搜一下,确保和JAVA一致。