AES128的加密解密学习总结
2016-02-01 14:55
501 查看
1.UTF8 互联网的普及,强烈要求出现一种统一的编码方式。
2.对Convert.ToBase64String和Convert.FromBase64String认识
3.AES128加密解密
string strcode="我是若见"; byte[] buffer=Encoding.UTF8.GetBytes(strcode); string msg= Encoding.UTF8.GetString(buffer,0,buffer.Length); //我是若见
2.对Convert.ToBase64String和Convert.FromBase64String认识
Convert.FromBase64String 是 Convert.ToBase64String 的逆过程, Convert.ToBase64String把byte[]转成base 64字符串,Convert.FromBase64String能把base 64字符串恢复为byte[]
3.AES128加密解密
//json 加密的数据,key 密钥,EncryptIV Iv值 protected string AESEncrypt(string json, string key,string EncryptIV ) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); byte[] ivArray = UTF8Encoding.UTF8.GetBytes(EncryptIV); byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(json); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.IV = ivArray; rDel.Mode = CipherMode.CBC; rDel.Padding = PaddingMode.Zeros; //基本的加密转换运算ICryptoTransform 接口 CreateEncryptor,用当前的 Key 属性和初始化向量(IV) 创建对称加密器对象TransformFinalBlock转换指定字节数组的指定区域 //ICryptoTransform 是一个接口。需要此接口才能在任何服务提供程序上调用 CreateEncryptor 方法,服务提供程序将返回定义该接口的实际 encryptor 对象。 ICryptoTransform cTransform = rDel.**CreateEncrypto**r(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return **Convert.ToBase64String**(resultArray, 0, resultArray.Length); } public static string AESDecrypt(string toDecrypt, string key string EncryptIV) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); byte[] ivArray = UTF8Encoding.UTF8.GetBytes(EncryptIV); byte[] toEncryptArray = **Convert.FromBase64String**(toDecrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.IV = ivArray; rDel.Mode = CipherMode.CBC; rDel.Padding = PaddingMode.Zeros; CreateDecryptor() //用当前的 Key 属性和初始化向量 (IV) 创建对称解密器对象** ICryptoTransform cTransform = rDel.**CreateDecryptor**(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return **UTF8Encoding.UTF8.GetString**(resultArray); }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- 用ASP编写的加密和解密类
- 解密网页加密的两个方法
- Prototype源码浅析 String部分(二)
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- Ruby中的String对象学习笔记
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- BAT加密工具 EncryBat 非编译型bat批处理加密方案与代码
- C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例
- SQLServer 2008中的代码安全(一) 存储过程加密与安全上下文
- PostgreSQL ERROR: invalid escape string 解决办法
- 实例讲解SQL Server加密功能
- C#编写DES加密、解密类
- Netscaler数据索引String Map与Pattern Set的区别