转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;
        }

  

原文地址:https://www.cnblogs.com/CurryZhang/p/5056471.html