c# 加密解密函数

 public static void InitEncrypt()
      {
          //
          //TODO: 在此处添加构造函数逻辑
          //
          mobjCryptoService = new RijndaelManaged();
         Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
        }


  private static byte[] GetLegalKey()
     {
         string sTemp = Key;
         mobjCryptoService.GenerateKey();
         byte[] bytTemp = mobjCryptoService.Key;
         int KeyLength = bytTemp.Length;
 
         if (sTemp.Length > KeyLength)
             sTemp = sTemp.Substring(0, KeyLength);
         else if (sTemp.Length<KeyLength)
             sTemp = sTemp.PadRight(KeyLength, ' ');
         return ASCIIEncoding.ASCII.GetBytes(sTemp);   
     }


 private static byte[] GetLegalIV()
     {
         string sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";
         mobjCryptoService.GenerateIV();
         byte[] bytTemp = mobjCryptoService.IV;
         int IVLength = bytTemp.Length;
         if (sTemp.Length > IVLength)
             sTemp = sTemp.Substring(0, IVLength);
         else if (sTemp.Length<IVLength)
             sTemp = sTemp.PadRight(IVLength, ' ');
         return ASCIIEncoding.ASCII.GetBytes(sTemp);
     }



  public static string Encrypto(string Source)
     {
         byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
         MemoryStream ms = new MemoryStream();
         mobjCryptoService.Key = GetLegalKey();
         mobjCryptoService.IV = GetLegalIV();
         ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
         CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
         cs.Write(bytIn, 0, bytIn.Length);
         cs.FlushFinalBlock();
         ms.Close();
         byte[] bytOut = ms.ToArray();
         return  Convert.ToBase64String(bytOut);
     }



  public static string Decrypto(string Source)
     {
         
         byte[] bytIn = Convert.FromBase64String(Source);
         MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
         mobjCryptoService.Key = GetLegalKey();
         mobjCryptoService.IV = GetLegalIV();
         ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
         CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
         StreamReader sr = new StreamReader(cs);
         return sr.ReadToEnd();
     }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值