转JSON字符串,并进行AES加密
转Json时注意引用C盘里的System.Web.Extensions.dll文件
private string JsonEncr(object obj)
{
System.Web.Script.Serialization.JavaScriptSerializer objSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = objSerializer.Serialize(obj);
return json;
}
只需要传入相应的类或其他,例如:
private void Form1_Load(object sender, EventArgs e)
{
Infomation info = new Infomation();
nfo.name = "Curry";
info.age = 18;
info.gender = "男";
textBox1.Text = JsonEncr(info);
}
private class Infomation
{
public string name { get; set; }
public int age { get; set; }
public string gender { get; set; }
}
这样就可以得到相应的Json字符串了,下面说下AES加密
AES加密(加密步骤)
1.加密字符串得到2进制数组;
2.将2禁止数组转为16进制;
3.进行base64编码
注意引用using System.Security.Cryptography;
private String Encrypt(String key, String toEncrypt)
{
Byte[] _Key = Encoding.ASCII.GetBytes(key);
Byte[] _Source = Encoding.UTF8.GetBytes(toEncrypt);
//Aes aes = Aes.Create("AES");
var aes = new RijndaelManaged();
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
aes.Key = _Key;
ICryptoTransform cTransform = aes.CreateEncryptor();
Byte[] cryptData = cTransform.TransformFinalBlock(_Source, 0, _Source.Length);
String HexCryptString = Hex_2To16(cryptData);
Byte[] HexCryptData = Encoding.UTF8.GetBytes(HexCryptString);
String CryptString = Convert.ToBase64String(HexCryptData);
return CryptString;
}
"toEncrypt"要加密的字符串,"key"密钥
例如:
private static string Key = "0123456789012345";
string ecValue = Encrypt(Key, json);
另外代码中有2进制转16进制,附上代码
private String Hex_2To16(Byte[] bytes)
{
String hexString = String.Empty;
Int32 iLength = 65535;
if (bytes != null)
{
StringBuilder strB = new StringBuilder();
if (bytes.Length < iLength)
{
iLength = bytes.Length;
}
for (int i = 0; i < iLength; i++)
{
strB.Append(bytes[i].ToString("X2"));
}
hexString = strB.ToString();
}
return hexString;
}

浙公网安备 33010602011771号