VS2010 .Net Framework 4,Web项目,AesCryptoServiceProvider,KEY 32字节, IV 16字节
使用实例方法加解密,一切正常,多次调用没问题。AES改为静态对象后,第一次调用正常。第二次开始,解密后的前16字节乱码,后面的字节却正确的解出来
哪位有碰到过类似问题吗,是否不能用静态的Encryptor和Decryptor
代码片段如下
private static AesCryptoServiceProvider AES;
static myClass() {
AES = new AesCryptoServiceProvider();
AESEncryptor = AES.CreateEncryptor(KEY, IV);
AESDecryptor = AES.CreateDecryptor(KEY, IV);
}
private static string Encrypt() {UTF8.GetBytes(); using (CryptoStream cs = new CryptoStream(ms, AESEncryptor ,
CryptoStreamMode.Write));...;return ToBase64();}
private static string Decrypt() {FromBase64(); using (CryptoStream cs = new CryptoStream(ms, AESDecryptor ,
CryptoStreamMode.Read));...;return UTF8.GetString();}
调用 myClass.Decrypt(myClass.Encrypt("AES = new AesCryptoServiceProvider();"))