<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      加解密

      #region 獲取由SHA1加密的字符串
      public static string EncryptToSHA1(string str)
      {
      SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
      byte[] str1 = Encoding.UTF8.GetBytes(str);
      byte[] str2 = sha1.ComputeHash(str1);
      sha1.Clear();
      (sha1 as IDisposable).Dispose();
      return Convert.ToBase64String(str2);
      }
      #endregion

      ---------------RSA加密

      RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
      RSAParameters rsaParamsExcludePrivate=rsa.ExportParameters(false);
      RSAParameters rsaParamsIncludePrivate=rsa.ExportParameters(true);

      Public byte [ ] RSAEncrypt ( byte [ ] b)
      {
      RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
      rsa.ImportParameters(rsaParamsExcludePrivate); //導入公鑰
      byte [] EncryptedData=rsa.Encrypt(DataToEncrypt,false);
      return EncryptedData;
      }
      解密時只要把rsa.ImportParameters(rsaParamsExcludePrivate)換成rsa.ImportParameters(rsaParamsExcludePrivate),再把Encrypt換成Decrypt就行了。

      保存和加載RSA參數:RSA參數可以保存為XML格式,下面代碼說明了如何保存和加載(只列出了關鍵部分)

      保存
      RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
      StreamWriter writer=new StreamWriter(@"d:\PublicAndPrivateKey.xml");
      string PPKeyXml=rsa.ToXmlString(true);//保存私鑰 writer.Write(PPKeyXml);
      writer.Close();
      writer=new StreamWriter(@"d:\PublicKey.xml");
      string PKeyXml=rsa.ToXmlString(false);//保存公鑰
      writer.Write(PKeyXml);
      writer.Close();

      讀取
      RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
      StreamReader reader=new StreamReader(@"d:\PublicKey.xml");
      string PKey=reader.ReadToEnd();
      rsa.FromXmlString(PKey);
      reader.Close();
      StreamReader reader=new StreamReader(@"d:\PublicAndPrivateKey.xml");
      string PPKey=reader.ReadToEnd();
      reader.Close();

       


      #region des實現

      /// <summary>
      /// Des默認密鑰向量
      /// </summary>
      public static byte[] DesIv = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
      /// <summary>
      /// Des加解密鑰必須8位
      /// </summary>
      public const string DesKey = "deskey8w";
      /// <summary>
      /// 獲取Des8位密鑰
      /// </summary>
      /// <param name="key">Des密鑰字符串</param>
      /// <returns>Des8位密鑰</returns>
      static byte[] GetDesKey(string key)
      {
      if (string.IsNullOrEmpty(key))
      {
      throw new ArgumentNullException("key", "Des密鑰不能為空");
      }
      if (key.Length > 8)
      {
      key = key.Substring(0, 8);
      }
      if (key.Length < 8)
      {
      // 不足8補全
      key = key.PadRight(8, '0');
      }
      return Encoding.UTF8.GetBytes(key);
      }
      /// <summary>
      /// Des加密
      /// </summary>
      /// <param name="source">源字符串</param>
      /// <param name="key">des密鑰,長度必須8位</param>
      /// <param name="iv">密鑰向量</param>
      /// <returns>加密后的字符串</returns>
      public static string EncryptDes(string source, string key, byte[] iv)
      {
      using (DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider())
      {
      byte[] rgbKeys = GetDesKey(key),
      rgbIvs = iv,
      inputByteArray = Encoding.UTF8.GetBytes(source);
      using (MemoryStream memoryStream = new MemoryStream())
      {
      using (CryptoStream cryptoStream = new CryptoStream(memoryStream, desProvider.CreateEncryptor(rgbKeys, rgbIvs), CryptoStreamMode.Write))
      {
      cryptoStream.Write(inputByteArray, 0, inputByteArray.Length);
      cryptoStream.FlushFinalBlock();
      // 1.第一種
      return Convert.ToBase64String(memoryStream.ToArray());

      // 2.第二種
      //StringBuilder result = new StringBuilder();
      //foreach (byte b in memoryStream.ToArray())
      //{
      // result.AppendFormat("{0:X2}", b);
      //}
      //return result.ToString();
      }
      }
      }
      }
      /// <summary>
      /// Des解密
      /// </summary>
      /// <param name="source">源字符串</param>
      /// <param name="key">des密鑰,長度必須8位</param>
      /// <param name="iv">密鑰向量</param>
      /// <returns>解密后的字符串</returns>
      public static string DecryptDes(string source, string key, byte[] iv)
      {
      using (DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider())
      {
      byte[] rgbKeys = GetDesKey(key),
      rgbIvs = iv,
      inputByteArray = Convert.FromBase64String(source);
      using (MemoryStream memoryStream = new MemoryStream())
      {
      using (CryptoStream cryptoStream = new CryptoStream(memoryStream, desProvider.CreateDecryptor(rgbKeys, rgbIvs), CryptoStreamMode.Write))
      {
      cryptoStream.Write(inputByteArray, 0, inputByteArray.Length);
      cryptoStream.FlushFinalBlock();
      return Encoding.UTF8.GetString(memoryStream.ToArray());
      }
      }
      }
      }

      #endregion

      #region aes實現

      /// <summary>
      /// Aes加解密鑰必須32位
      /// </summary>
      public static string AesKey = "asekey32w";
      /// <summary>
      /// 獲取Aes32位密鑰
      /// </summary>
      /// <param name="key">Aes密鑰字符串</param>
      /// <returns>Aes32位密鑰</returns>
      static byte[] GetAesKey(string key)
      {
      if (string.IsNullOrEmpty(key))
      {
      throw new ArgumentNullException("key", "Aes密鑰不能為空");
      }
      if (key.Length < 32)
      {
      // 不足32補全
      key = key.PadRight(32, '0');
      }
      if (key.Length > 32)
      {
      key = key.Substring(0, 32);
      }
      return Encoding.UTF8.GetBytes(key);
      }
      /// <summary>
      /// Aes加密
      /// </summary>
      /// <param name="source">源字符串</param>
      /// <param name="key">aes密鑰,長度必須32位</param>
      /// <returns>加密后的字符串</returns>
      public static string EncryptAes(string source, string key)
      {
      using (AesCryptoServiceProvider aesProvider = new AesCryptoServiceProvider())
      {
      aesProvider.Key = GetAesKey(key);
      aesProvider.Mode = CipherMode.ECB;
      aesProvider.Padding = PaddingMode.PKCS7;
      using (ICryptoTransform cryptoTransform = aesProvider.CreateEncryptor())
      {
      byte[] inputBuffers = Encoding.UTF8.GetBytes(source);
      byte[] results = cryptoTransform.TransformFinalBlock(inputBuffers, 0, inputBuffers.Length);
      aesProvider.Clear();
      aesProvider.Dispose();
      return Convert.ToBase64String(results, 0, results.Length);
      }
      }
      }
      /// <summary>
      /// Aes解密
      /// </summary>
      /// <param name="source">源字符串</param>
      /// <param name="key">aes密鑰,長度必須32位</param>
      /// <returns>解密后的字符串</returns>
      public static string DecryptAes(string source, string key)
      {
      using (AesCryptoServiceProvider aesProvider = new AesCryptoServiceProvider())
      {
      aesProvider.Key = GetAesKey(key);
      aesProvider.Mode = CipherMode.ECB;
      aesProvider.Padding = PaddingMode.PKCS7;
      using (ICryptoTransform cryptoTransform = aesProvider.CreateDecryptor())
      {
      byte[] inputBuffers = Convert.FromBase64String(source);
      byte[] results = cryptoTransform.TransformFinalBlock(inputBuffers, 0, inputBuffers.Length);
      aesProvider.Clear();
      return Encoding.UTF8.GetString(results);
      }
      }
      }

      #endregion

      posted @ 2017-08-08 16:31  ?!鉙en  閱讀(194)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 成人国产精品免费网站| 青春草在线视频观看| 午夜精品亚洲一区二区三区| 光棍天堂在线手机播放免费| 东京热无码国产精品| 久久国产综合色免费观看| 台北县| 极品少妇的粉嫩小泬视频| 日本亚洲色大成网站www久久| 久久亚洲熟女cc98cm| 尤物tv国产精品看片在线| 日韩高清在线亚洲专区不卡| 免费看视频的网站| 亚洲综合一区无码精品| 亚洲天堂男人的天堂在线| 欧美日韩人人模人人爽人人喊| 一区二区三区精品偷拍| 巴楚县| 国产免费久久精品44| 国产精品 自在自线| 久草国产视频| 最新亚洲av日韩av二区| 国产精品自偷一区在线观看| 国产成人久久精品流白浆| 法库县| 久久精品国产亚洲AⅤ无码| 中文字幕在线看视频一区二区三区| 亚洲成av人片无码天堂下载| 欧美精品国产综合久久| 亚洲中国精品精华液| 欧美白妞大战非洲大炮| 日本高清久久一区二区三区| av在线播放无码线| 色吊a中文字幕一二三区| 久久99热只有频精品8| 亚洲欧洲日产国码久在线| 日韩乱码人妻无码中文字幕视频| 国产一区二区亚洲一区二区三区 | 内射少妇一区27p| 不卡在线一区二区三区视频| 亚洲精品成人福利网站|