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

      

  • 相关阅读:
    ETL概念集锦
    想要快速泡大麦茶的4种方法
    Suggest blowing out the dust
    Pessimistic and optimistic locking
    操作系统简介
    初学计算机基础
    JavaScript筑基篇(三)->JS原型和原型链的理解
    网页瀑布流效果实现的几种方式
    javascript的基本语法、数据结构
    javascript如何列出全局对象的非原生属性。
  • 原文地址:https://www.cnblogs.com/CurryZhang/p/5056471.html
Copyright © 2020-2023  润新知