我正在C#中创建一个小应用程序,它从服务器检索图像,该服务器使用AES / ECB加密,使用单个同步密钥(我知道)并使用PKCS#5进行填充。
我尝试使用BinaryReader下载图像,但是当我打开图像时,它是一个损坏的文件。我认为这是因为它是加密的。这是我的代码:
string repsonseData = string.Empty;
using (var response = (HttpWebResponse)req.GetResponse())
{
using (var reader = new BinaryReader(response.GetResponseStream()))
{
Byte[] lnByte = reader.ReadBytes(1 * 1024 * 1024 * 10);
using (FileStream lxFS = new FileStream("imageName.jpg", FileMode.Create))
{
lxFS.Write(lnByte, 0, lnByte.Length);
}
}
}
同步键为:M02cnQ51Ji97vwT4 任何帮助,将不胜感激。谢谢!
编辑:我发现这段PHP代码可以满足我的需求:
public function decryptECB($data)
{
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, self::BLOB_ENCRYPTION_KEY, self::pad($data), MCRYPT_MODE_ECB);
}
BLOB_ENCRYPTION_KEY是我上面提供的密钥。有人可以将其转换为C#?