zoukankan      html  css  js  c++  java
  • AES与RSA加密

    AES


    using System;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;
    
    namespace winfAESEncryptDecrypt
    {
        public class AES
        {
            /// <summary>
            /// AES加密
            /// </summary>
            /// <param name="data">待加密的字符数据</param>
            /// <param name="key">密匙,长度可以为:128位(byte[16]),192位(byte[24]),256位(byte[32])</param>
            /// <param name="iv">iv向量,长度必须为128位(byte[16])</param>
            /// <returns>加密后的字符</returns>
            public string EnAES(string data, string key, string iv)
            {
                if (string.IsNullOrEmpty(data)) return data;
                Aes aes = Aes.Create();
                byte[] tmp = null;
    
                ICryptoTransform encryptor = aes.CreateEncryptor(Encoding.UTF8.GetBytes(key), Encoding.UTF8.GetBytes(iv));
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                    {
                        StreamWriter writer = new StreamWriter(cs);
                        writer.Write(data);
                        writer.Flush();
                        writer.Close();
                    }
                    tmp = ms.ToArray();
                }
                return Convert.ToBase64String(tmp);
            }
    
            /// <summary>
            /// AES解密
            /// </summary>
            /// <param name="data">待加密的字符数据</param>
            /// <param name="key">密匙,长度可以为:128位(byte[16]),192位(byte[24]),256位(byte[32])</param>
            /// <param name="iv">iv向量,长度必须为128位(byte[16])</param>
            /// <returns>加密后的字符</returns>
            public string DeAES(string data, string key, string iv)
            {
                if (string.IsNullOrEmpty(data)) return data;
                string result = string.Empty;
                Aes aes = Aes.Create();
    
                ICryptoTransform edcryptor = aes.CreateDecryptor(Encoding.UTF8.GetBytes(key), Encoding.UTF8.GetBytes(iv));
                using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(data)))
                {
                    using (CryptoStream cs = new CryptoStream(ms, edcryptor, CryptoStreamMode.Read))
                    {
                        StreamReader reader = new StreamReader(cs);
                        result = reader.ReadLine();
                        reader.Close();
                    }
                }
                aes.Clear();
                return result;
            }
        }
    
    }
    
    

    RSA


     RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
                string privateKey = rsa.ToXmlString(true);
                string publicKey = rsa.ToXmlString(false);
    using System;
    using System.Security.Cryptography;
    using System.Text;
    
    namespace winfAESEncryptDecrypt
    {
        public class RSA
        {
            /// <summary>
            /// RSA加密
            /// </summary>
            /// <param name="sdata"></param>
            /// <param name="sPublicKey"></param>
            /// <returns></returns>
            public string EnRSA(string sdata, string sPublicKey)
            {
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
                rsa.FromXmlString(sPublicKey);
                byte[] mybyte = Encoding.UTF8.GetBytes(sdata);
                string sEnRSA = Convert.ToBase64String(rsa.Encrypt(mybyte, false));
                return sEnRSA;
            }
    
            /// <summary>
            /// RSA解密
            /// </summary>
            /// <param name="sdata"></param>
            /// <param name="sPrivateKey"></param>
            /// <returns></returns>
            public string DeRAS(string sdata, string sPrivateKey)
            {
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
                rsa.FromXmlString(sPrivateKey);
                byte[] mybyte = Convert.FromBase64String(sdata);
                string sDeRAS = Encoding.UTF8.GetString(rsa.Decrypt(mybyte, false));
                return sDeRAS;
            }
    
        }
    }
    



  • 相关阅读:
    python 读fnl数据
    全面学习ORACLE Scheduler特性(12)使用Windows和Window Groups
    全面学习ORACLE Scheduler特性(11)使用Job Classes
    全面学习ORACLE Scheduler特性(9)创建Chains
    全面学习ORACLE Scheduler特性(10)管理Chains
    全面学习ORACLE Scheduler特性(8)Application抛出的Events
    全面学习ORACLE Scheduler特性(6)设置Repeat Interval参数
    全面学习ORACLE Scheduler特性(7)Scheduler抛出的Events
    全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs
    全面学习ORACLE Scheduler特性(4)创建和管理Schedule
  • 原文地址:https://www.cnblogs.com/cxd1008/p/6395607.html
Copyright © 2011-2022 走看看