1.UTF8 互联网的普及,强烈要求出现一种统一的编码方式。
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);
}