C#加密解密(自定义加密字符)

发布时间 2023-09-06 16:19:26作者: mkmkbj

static string encryptKey = "加密字符";
#region 加密字符串
/// 

 
/// 加密字符串  
/// 
 
/// 要加密的字符串 
/// 加密后的字符串 
static string Encrypt(string str)
{
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();   //实例化加/解密类对象  
byte[] key = Encoding.Unicode.GetBytes(encryptKey);//定义字节数组,用来存储密钥  
byte[] data = Encoding.Unicode.GetBytes(str);//定义字节数组,用来存储要加密的字符串  
MemoryStream MStream = new MemoryStream();//实例化内存流对象  
//使用内存流实例化加密流对象   
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length);//向加密流中写入数据  
CStream.FlushFinalBlock();//释放加密流  
return Convert.ToBase64String(MStream.ToArray());//返回加密后的字符串
}
#endregion

    #region 解密字符串
    static string Decrypt(string str)
    {
        DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();   //实例化加/解密类对象  
        byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定义字节数组,用来存储密钥  
        byte[] data = Convert.FromBase64String(str);//定义字节数组,用来存储要解密的字符串 
        MemoryStream MStream = new MemoryStream();//实例化内存流对象  
        //使用内存流实例化解密流对象  
        CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
        CStream.Write(data, 0, data.Length);//向解密流中写入数据  
        CStream.FlushFinalBlock();//释放解密流  
        return Encoding.Unicode.GetString(MStream.ToArray());//返回解密后的字符串  
    }
    #endregion