Unity——AES-256-CBC加密解密

方式一:

RijndaelManaged rm = new RijndaelManaged();

 private void Awake()
    {
        rm.BlockSize = 128;
        rm.KeySize = 256;
        rm.FeedbackSize = 128;
        rm.Padding = PaddingMode.PKCS7;
        rm.Mode = CipherMode.CBC;

        rm.Key = (new SHA256Managed()).ComputeHash(Encoding.ASCII.GetBytes("2b58592aab597b16c0e04477"));
        rm.IV = Encoding.ASCII.GetBytes("8d3affe547824a710817ccd46f");
    }

    


    //加密
    public string AESEncrypt(string msg)
    {
        ICryptoTransform encryptor = rm.CreateEncryptor(rm.Key, rm.IV);
        byte[] _bytes;
        using (MemoryStream ms = new MemoryStream())
        {
            using (CryptoStream csEncrypt = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))

//解密

public string Encrypt(byte[] _bt)
    {
        byte[] bs = _bt;

        RijndaelManaged aes256 = new RijndaelManaged();
        aes256.Key = Encoding.UTF8.GetBytes("12345678901234567890123456789012");
        aes256.Mode = CipherMode.ECB;
        aes256.Padding = PaddingMode.PKCS7;

        return Convert.ToBase64String(aes256.CreateEncryptor().TransformFinalBlock(bs, 0, bs.Length));
    }

    public byte[] Decrypt(string data)
    {
        byte[] bs = Convert.FromBase64String(data);

        RijndaelManaged aes256 = new RijndaelManaged();
        aes256.Key = Encoding.UTF8.GetBytes("12345678901234567890123456789012");
        aes256.Mode = CipherMode.ECB;
        aes256.Padding = PaddingMode.PKCS7;

        return aes256.CreateDecryptor().TransformFinalBlock(bs, 0, bs.Length);
    }

            {
                using (StreamWriter sw = new StreamWriter(csEncrypt))
                {
                    sw.Write(msg);
                }
                _bytes = ms.ToArray();
            }
        }
        return Convert.ToBase64String(_bytes);
    }

方式二:

    //解密
    public string AESDecrtpt(byte[] msg)
    {
        ICryptoTransform ict = rm.CreateDecryptor(rm.Key, rm.IV);

        string backString;
        using (MemoryStream ms = new MemoryStream(msg))
        {
            using (CryptoStream cs = new CryptoStream(ms, ict, CryptoStreamMode.Read))
            {
                using (StreamReader sr = new StreamReader(cs))
                {
                    backString = sr.ReadToEnd();
                }
            }
        }
        return backString;
    }


版权声明:本文为lalate原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。