关于使用RijndaelManaged 类加密解密数据的小结

来源:互联网 发布:淘宝详情页跳出率70% 编辑:程序博客网 时间:2024/06/07 12:37

关于代码内容,转载自http://blog.sina.com.cn/s/blog_471132920101d3kh.html

加密:

1.将string密钥转换并存储到byte序列中:

//将密码指定字符串中的所有字符编码为一个字节序列byte[] keyArray = UTF8Encoding.UTF8.GetBytes("我是密码");

2.通过密钥新建一个对称加密器对象:

//访问 Rijndael 算法的托管版本RijndaelManaged rDel = new RijndaelManaged();//设置对称算法的密钥 模式 填充模式rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;//用当前的 Key 属性和初始化向量 (IV) 创建对称加密器对象。ICryptoTransform cTransform = rDel.CreateEncryptor();

3.将要加密的内容指定字符串中的所有字符编码为一个字节序列:

byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toE);
4.【关键】用加密器对象将数据加密转换出

byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray,0,toEncryptArray.Length);
5.将转换出的byte流转换为string:

Convert.ToBase64String(resultArray,0,resultArray.Length);
解密:

1.将string密钥转换并存储到byte序列中:

//将密码指定字符串中的所有字符编码为一个字节序列byte[] keyArray = UTF8Encoding.UTF8.GetBytes("我是密码");
2.通过密码新建一个对称加密器对象:

RijndaelManaged rDel = new RijndaelManaged();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateDecryptor();byte[] toEncryptArray = Convert.FromBase64String(toD);
3.用同样的加密器将数据string解码:

byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray,0,toEncryptArray.Length);
4.将解码后的值编码为string字符串:

UTF8Encoding.UTF8.GetString(resultArray);

End.

0 0
原创粉丝点击