如何在C#中使用AES加密,然后在Perl上解密?

时间:2009-12-22 00:52:56

标签: c# perl encryption aes rijndaelmanaged

这是我的C#代码。我怎么能在Perl中解密这个?或者由于OpenSSL,我无法在Perl中解密它?

RijndaelManaged RijndaelAlg = new RijndaelManaged();
FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
byte[] initVectorBytes = Encoding.ASCII.GetBytes("11B2c3D4e5F6g7H8");
RijndaelAlg.IV = initVectorBytes;
string password = "11111111";
Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(password, Encoding.ASCII.GetBytes("22222222"));
RijndaelAlg.Key = key.GetBytes(RijndaelAlg.KeySize / 8);
fStream = File.Open(FileName, FileMode.OpenOrCreate);
cStream = new CryptoStream(fStream, RijndaelAlg.CreateEncryptor(RijndaelAlg.Key, RijndaelAlg.IV), CryptoStreamMode.Write);
StreamWriter sWriter = new StreamWriter(cStream);
sWriter.Write(input);

sWriter.Close();
cStream.Close();
fStream.Close();

非常感谢。

2 个答案:

答案 0 :(得分:3)

看看Crypt :: OpenSSL :: AES。

当然,你的Perl代码需要以某种方式获得正确的密钥。

答案 1 :(得分:1)

如果您使用Rijndael / CBC,请使用Crypt::Rijndael。或者更好地描述您的代码。