从Action Script到C#的Rijndael加密

我试图在Action Script和C#之间共享加密

我的任务是在C#中解密以下消息

f1ca22a365ba54c005c3eb599d84b19c354d26dcf475ab4be775b991ac97884791017b12471000def05bb77bfe9c3a97d44ef78c9449f12daf6e25b61ab1a281

它使用Rijndael encyption,ECB模式(电子代码簿),密钥:Pas5pr @ se,128位密钥大小和块大小。

我遇到的问题是我似乎无法做到,有人帮我这个吗?

这是我的一个网站目前使用的Rijndael加密的实现。 看看这是否有效:

using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace CMS.Core.Domain { ///  /// Summary description for EncryptionManager ///  public static class EncryptionManager { public static string EncryptRijndael(string value, string encryptionKey) { try { var key = Encoding.UTF8.GetBytes(encryptionKey); //must be 16 chars var rijndael = new RijndaelManaged { BlockSize = 128, IV = key, KeySize = 128, Key = key }; var transform = rijndael.CreateEncryptor(); using (var ms = new MemoryStream()) { using (var cs = new CryptoStream(ms, transform, CryptoStreamMode.Write)) { byte[] buffer = Encoding.UTF8.GetBytes(value); cs.Write(buffer, 0, buffer.Length); cs.FlushFinalBlock(); cs.Close(); } ms.Close(); return Convert.ToBase64String(ms.ToArray()); } } catch { return string.Empty; } } public static string DecryptRijndael(string value, string encryptionKey) { try { var key = Encoding.UTF8.GetBytes(encryptionKey); //must be 16 chars var rijndael = new RijndaelManaged { BlockSize = 128, IV = key, KeySize = 128, Key = key }; var buffer = Convert.FromBase64String(value); var transform = rijndael.CreateDecryptor(); string decrypted; using (var ms = new MemoryStream()) { using (var cs = new CryptoStream(ms, transform, CryptoStreamMode.Write)) { cs.Write(buffer, 0, buffer.Length); cs.FlushFinalBlock(); decrypted = Encoding.UTF8.GetString(ms.ToArray()); cs.Close(); } ms.Close(); } return decrypted; } catch { return null; } } } } 

更新

我刚注意到你输入的一件事是你的加密密钥只有9个字符而我上面的代码需要16个字符的密钥。 我不确定这是否是Rijndael加密算法的硬性要求,但上述代码不适用于不完全是16个字符的加密密钥。

我遇到了这个链接,它解决了AES Rijndael加密的C#和ActionScript问题

http://ryoushin.com/cmerighi/en-us/42,2007-03-02/AES-Rijndael_with_ActionScript_and_ASP_Net.aspx

您可以尝试使用Rijndael的这个包装器 ,因为它可能是IV或密码短语填充的问题(我有兴趣知道它是否不起作用)