<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        .NET使用RSA加密解密的方法

        來源:懂視網 責編:小OO 時間:2020-11-27 22:34:38
        文檔

        .NET使用RSA加密解密的方法

        本文實例為大家分享了.NET使用RSA加密解密的具體代碼,供大家參考,具體內容如下:PassWordHelper.cs代碼。using System;using System.IO;using System.Text;using System.Globalization;using System.Collections.Generic;using System.Security.Cryptography;namespace Utils{ /// <;summary>;/// 密碼加密解密操作相關類 /// <;/summary>;public static class PassWordHelper { #region MD5 加密 /// <;/// <;"。
        推薦度:
        導讀本文實例為大家分享了.NET使用RSA加密解密的具體代碼,供大家參考,具體內容如下:PassWordHelper.cs代碼。using System;using System.IO;using System.Text;using System.Globalization;using System.Collections.Generic;using System.Security.Cryptography;namespace Utils{ /// <;summary>;/// 密碼加密解密操作相關類 /// <;/summary>;public static class PassWordHelper { #region MD5 加密 /// <;/// <;"。

        本文實例為大家分享了.NET使用RSA加密解密的具體代碼,供大家參考,具體內容如下

        PassWordHelper.cs代碼:

        using System;
        using System.IO;
        using System.Text;
        using System.Globalization;
        using System.Collections.Generic;
        using System.Security.Cryptography;
        
        namespace Utils
        {
         /// <summary>
         /// 密碼加密解密操作相關類
         /// </summary>
         public static class PassWordHelper
         {
         #region MD5 加密
        
         /// <summary>
         /// MD5加密
         /// </summary>
         public static string Md532(this string source)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         MD5 md5 = MD5.Create();
         return HashAlgorithmBase(md5, source, encoding);
         }
        
         /// <summary>
         /// 加鹽MD5加密
         /// </summary>
         public static string Md532Salt(this string source, string salt)
         {
         return string.IsNullOrEmpty(source) ? source.Md532() : (source + "『" + salt + "』").Md532();
         }
        
         #endregion
        
         #region SHA 加密
        
         /// <summary>
         /// SHA1 加密
         /// </summary>
         public static string Sha1(this string source)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         SHA1 sha1 = new SHA1CryptoServiceProvider();
         return HashAlgorithmBase(sha1, source, encoding);
         }
        
         /// <summary>
         /// SHA256 加密
         /// </summary>
         public static string Sha256(this string source)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         SHA256 sha256 = new SHA256Managed();
         return HashAlgorithmBase(sha256, source, encoding);
         }
        
         /// <summary>
         /// SHA512 加密
         /// </summary>
         public static string Sha512(this string source)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         SHA512 sha512 = new SHA512Managed();
         return HashAlgorithmBase(sha512, source, encoding);
         }
        
         #endregion
        
         #region HMAC 加密
        
         /// <summary>
         /// HmacSha1 加密
         /// </summary>
         public static string HmacSha1(this string source, string keyVal)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         byte[] keyStr = encoding.GetBytes(keyVal);
         HMACSHA1 hmacSha1 = new HMACSHA1(keyStr);
         return HashAlgorithmBase(hmacSha1, source, encoding);
         }
        
         /// <summary>
         /// HmacSha256 加密
         /// </summary>
         public static string HmacSha256(this string source, string keyVal)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         byte[] keyStr = encoding.GetBytes(keyVal);
         HMACSHA256 hmacSha256 = new HMACSHA256(keyStr);
         return HashAlgorithmBase(hmacSha256, source, encoding);
         }
        
         /// <summary>
         /// HmacSha384 加密
         /// </summary>
         public static string HmacSha384(this string source, string keyVal)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         byte[] keyStr = encoding.GetBytes(keyVal);
         HMACSHA384 hmacSha384 = new HMACSHA384(keyStr);
         return HashAlgorithmBase(hmacSha384, source, encoding);
         }
        
         /// <summary>
         /// HmacSha512 加密
         /// </summary>
         public static string HmacSha512(this string source, string keyVal)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         byte[] keyStr = encoding.GetBytes(keyVal);
         HMACSHA512 hmacSha512 = new HMACSHA512(keyStr);
         return HashAlgorithmBase(hmacSha512, source, encoding);
         }
        
         /// <summary>
         /// HmacMd5 加密
         /// </summary>
         public static string HmacMd5(this string source, string keyVal)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         byte[] keyStr = encoding.GetBytes(keyVal);
         HMACMD5 hmacMd5 = new HMACMD5(keyStr);
         return HashAlgorithmBase(hmacMd5, source, encoding);
         }
        
         /// <summary>
         /// HmacRipeMd160 加密
         /// </summary>
         public static string HmacRipeMd160(this string source, string keyVal)
         {
         if (string.IsNullOrEmpty(source)) return null;
         var encoding = Encoding.UTF8;
         byte[] keyStr = encoding.GetBytes(keyVal);
         HMACRIPEMD160 hmacRipeMd160 = new HMACRIPEMD160(keyStr);
         return HashAlgorithmBase(hmacRipeMd160, source, encoding);
         }
        
         #endregion
        
         #region AES 加密解密
        
         /// <summary> 
         /// AES加密 
         /// </summary> 
         /// <param name="source">待加密字段</param> 
         /// <param name="keyVal">密鑰值</param> 
         /// <param name="ivVal">加密輔助向量</param> 
         /// <returns></returns> 
         public static string AesStr(this string source, string keyVal, string ivVal)
         {
         var encoding = Encoding.UTF8;
         byte[] btKey = keyVal.FormatByte(encoding);
         byte[] btIv = ivVal.FormatByte(encoding);
         byte[] byteArray = encoding.GetBytes(source);
         string encrypt;
         Rijndael aes = Rijndael.Create();
         using (MemoryStream mStream = new MemoryStream())
         {
         using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(btKey, btIv), CryptoStreamMode.Write))
         {
         cStream.Write(byteArray, 0, byteArray.Length);
         cStream.FlushFinalBlock();
         encrypt = Convert.ToBase64String(mStream.ToArray());
         }
         }
         aes.Clear();
         return encrypt;
         }
        
         /// <summary> 
         /// AES解密 
         /// </summary> 
         /// <param name="source">待加密字段</param> 
         /// <param name="keyVal">密鑰值</param> 
         /// <param name="ivVal">加密輔助向量</param> 
         /// <returns></returns> 
         public static string UnAesStr(this string source, string keyVal, string ivVal)
         {
         var encoding = Encoding.UTF8;
         byte[] btKey = keyVal.FormatByte(encoding);
         byte[] btIv = ivVal.FormatByte(encoding);
         byte[] byteArray = Convert.FromBase64String(source);
         string decrypt;
         Rijndael aes = Rijndael.Create();
         using (MemoryStream mStream = new MemoryStream())
         {
         using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(btKey, btIv), CryptoStreamMode.Write))
         {
         cStream.Write(byteArray, 0, byteArray.Length);
         cStream.FlushFinalBlock();
         decrypt = encoding.GetString(mStream.ToArray());
         }
         }
         aes.Clear();
         return decrypt;
         }
        
         /// <summary> 
         /// AES Byte類型 加密 
         /// </summary> 
         /// <param name="data">待加密明文</param> 
         /// <param name="keyVal">密鑰值</param> 
         /// <param name="ivVal">加密輔助向量</param> 
         /// <returns></returns> 
         public static byte[] AesByte(this byte[] data, string keyVal, string ivVal)
         {
         byte[] bKey = new byte[32];
         Array.Copy(Encoding.UTF8.GetBytes(keyVal.PadRight(bKey.Length)), bKey, bKey.Length);
         byte[] bVector = new byte[16];
         Array.Copy(Encoding.UTF8.GetBytes(ivVal.PadRight(bVector.Length)), bVector, bVector.Length);
         byte[] cryptograph;
         Rijndael aes = Rijndael.Create();
         try
         {
         using (MemoryStream mStream = new MemoryStream())
         {
         using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bVector), CryptoStreamMode.Write))
         {
         cStream.Write(data, 0, data.Length);
         cStream.FlushFinalBlock();
         cryptograph = mStream.ToArray();
         }
         }
         }
         catch
         {
         cryptograph = null;
         }
         return cryptograph;
         }
        
         /// <summary> 
         /// AES Byte類型 解密 
         /// </summary> 
         /// <param name="data">待解密明文</param> 
         /// <param name="keyVal">密鑰值</param> 
         /// <param name="ivVal">加密輔助向量</param> 
         /// <returns></returns> 
         public static byte[] UnAesByte(this byte[] data, string keyVal, string ivVal)
         {
         byte[] bKey = new byte[32];
         Array.Copy(Encoding.UTF8.GetBytes(keyVal.PadRight(bKey.Length)), bKey, bKey.Length);
         byte[] bVector = new byte[16];
         Array.Copy(Encoding.UTF8.GetBytes(ivVal.PadRight(bVector.Length)), bVector, bVector.Length);
         byte[] original;
         Rijndael aes = Rijndael.Create();
         try
         {
         using (MemoryStream mStream = new MemoryStream(data))
         {
         using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bVector), CryptoStreamMode.Read))
         {
         using (MemoryStream originalMemory = new MemoryStream())
         {
         byte[] buffer = new byte[1024];
         int readBytes;
         while ((readBytes = cStream.Read(buffer, 0, buffer.Length)) > 0)
         {
         originalMemory.Write(buffer, 0, readBytes);
         }
        
         original = originalMemory.ToArray();
         }
         }
         }
         }
         catch
         {
         original = null;
         }
         return original;
         }
        
         #endregion
        
         #region RSA 加密解密
        
         //密鑰對,請配合密鑰生成工具使用『 http://download.csdn.net/detail/downiis6/9464639 』
         private const string PublicRsaKey = @"<RSAKeyValue>
         <Modulus>8Yvf/LjXRhCuOREk2CuSYvbD/RadwJ4sjHREIpQVKwkTlG3BtRgpnaMcoeLAesmwvpBWnqK4hBkYLxhRj+NEKnlGrJ+LkNMnZr0/4CMuulZFAnx7iQYaSq7Eh7kBKGLofc05CjZguYpnPNxHIv4VNx+a9tIh+hnhjrmkJLUm3l0=</Modulus>
         <Exponent>AQAB</Exponent>
        </RSAKeyValue>";
         private const string PrivateRsaKey = @"<RSAKeyValue>
         <Modulus>8Yvf/LjXRhCuOREk2CuSYvbD/RadwJ4sjHREIpQVKwkTlG3BtRgpnaMcoeLAesmwvpBWnqK4hBkYLxhRj+NEKnlGrJ+LkNMnZr0/4CMuulZFAnx7iQYaSq7Eh7kBKGLofc05CjZguYpnPNxHIv4VNx+a9tIh+hnhjrmkJLUm3l0=</Modulus>
         <Exponent>AQAB</Exponent>
         <P>/xAaa/4dtDxcEAk5koSZBPjuxqvKJikpwLA1nCm3xxAUMDVxSwQyr+SHFaCnBN9kqaNkQCY6kDCfJXFWPOj0Bw==</P>
         <Q>8m8PFVA4sO0oEKMVQxt+ivDTHFuk/W154UL3IgC9Y6bzlvYewXZSzZHmxZXXM1lFtwoYG/k+focXBITsiJepew==</Q>
         <DP>ONVSvdt6rO2CKgSUMoSfQA9jzRr8STKE3i2lVG2rSIzZosBVxTxjOvQ18WjBroFEgdQpg23BQN3EqGgvqhTSQw==</DP>
         <DQ>gfp7SsEM9AbioTDemHEoQlPly+FyrxE/9D8UAt4ErGX5WamxSaYntOGRqcOxcm1djEpULMNP90R0Wc7uhjlR+w==</DQ>
         <InverseQ>C0eBsp2iMOxWwKo+EzkHOP0H+YOitUVgjekGXmSt9a3TvikQNaJ5ATlqKsZaMGsnB6UIHei+kUaCusVX0HgQ2A==</InverseQ>
         <D>tPYxEfo9Nb3LeO+SJe3G1yO+w37NIwCdqYB1h15f2YUMSThNVmpKy1HnYpUp1RQDuVETw/duu3C9gJL8kAsZBjBrVZ0zC/JZsgvSNprfUK3Asc4FgFsGfQGKW1nvvgdMbvqr4ClB0R8czkki+f9Oc5ea/RMqXxlI+XjzMYDEknU=</D>
        </RSAKeyValue>";
        
         /// <summary>
         /// RSA 加密
         /// </summary>
         public static string Rsa(this string source)
         {
         RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
         rsa.FromXmlString(PublicRsaKey);
         var cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(source), true);
         return Convert.ToBase64String(cipherbytes);
         }
        
         /// <summary>
         /// RSA解密
         /// </summary>
         public static string UnRsa(this string source)
         {
         RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
         rsa.FromXmlString(PrivateRsaKey);
         var cipherbytes = rsa.Decrypt(Convert.FromBase64String(source), true);
         return Encoding.UTF8.GetString(cipherbytes);
         }
        
         #endregion
        
         #region DES 加密解密
        
         /// <summary>
         /// DES 加密
         /// </summary>
         public static string Des(this string source, string keyVal, string ivVal)
         {
         try
         {
         byte[] data = Encoding.UTF8.GetBytes(source);
         var des = new DESCryptoServiceProvider { Key = Encoding.ASCII.GetBytes(keyVal.Length > 8 ? keyVal.Substring(0, 8) : keyVal), IV = Encoding.ASCII.GetBytes(ivVal.Length > 8 ? ivVal.Substring(0, 8) : ivVal) };
         var desencrypt = des.CreateEncryptor();
         byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
         return BitConverter.ToString(result);
         }
         catch { return "轉換出錯!"; }
         }
        
         /// <summary>
         /// DES 解密
         /// </summary>
         public static string UnDes(this string source, string keyVal, string ivVal)
         {
         try
         {
         string[] sInput = source.Split("-".ToCharArray());
         byte[] data = new byte[sInput.Length];
         for (int i = 0; i < sInput.Length; i++)
         {
         data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
         }
         var des = new DESCryptoServiceProvider { Key = Encoding.ASCII.GetBytes(keyVal.Length > 8 ? keyVal.Substring(0, 8) : keyVal), IV = Encoding.ASCII.GetBytes(ivVal.Length > 8 ? ivVal.Substring(0, 8) : ivVal) };
         var desencrypt = des.CreateDecryptor();
         byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
         return Encoding.UTF8.GetString(result);
         }
         catch { return "解密出錯!"; }
         }
        
         #endregion
        
         #region TripleDES 加密解密
        
         /// <summary>
         /// DES3 加密
         /// </summary>
         public static string Des3(this string source, string keyVal)
         {
         try
         {
         TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider
         {
         Key = keyVal.FormatByte(Encoding.UTF8),
         Mode = CipherMode.ECB,
         Padding = PaddingMode.PKCS7
         };
         using (MemoryStream ms = new MemoryStream())
         {
         byte[] btArray = Encoding.UTF8.GetBytes(source);
         try
         {
         using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
         {
         cs.Write(btArray, 0, btArray.Length);
         cs.FlushFinalBlock();
         }
         return ms.ToArray().Bytes2Str();
         }
         catch { return source; }
         }
         }
         catch
         {
         return "TripleDES加密出現錯誤";
         }
         }
        
         /// <summary>
         /// DES3 解密
         /// </summary>
         public static string UnDes3(this string source, string keyVal)
         {
         try
         {
         byte[] byArray = source.Str2Bytes();
         TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider
         {
         Key = keyVal.FormatByte(Encoding.UTF8),
         Mode = CipherMode.ECB,
         Padding = PaddingMode.PKCS7
         };
         using (MemoryStream ms = new MemoryStream())
         {
         using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
         {
         cs.Write(byArray, 0, byArray.Length);
         cs.FlushFinalBlock();
         cs.Close();
         ms.Close();
         return Encoding.UTF8.GetString(ms.ToArray());
         }
         }
         }
         catch
         {
         return "TripleDES解密出現錯誤";
         }
         }
        
         #endregion
        
         #region BASE64 加密解密
        
         /// <summary>
         /// BASE64 加密
         /// </summary>
         /// <param name="source">待加密字段</param>
         /// <returns></returns>
         public static string Base64(this string source)
         {
         var btArray = Encoding.UTF8.GetBytes(source);
         return Convert.ToBase64String(btArray, 0, btArray.Length);
         }
        
         /// <summary>
         /// BASE64 解密
         /// </summary>
         /// <param name="source">待解密字段</param>
         /// <returns></returns>
         public static string UnBase64(this string source)
         {
         var btArray = Convert.FromBase64String(source);
         return Encoding.UTF8.GetString(btArray);
         }
        
         #endregion
        
         #region 內部方法
        
         /// <summary>
         /// 轉成數組
         /// </summary>
         private static byte[] Str2Bytes(this string source)
         {
         source = source.Replace(" ", "");
         byte[] buffer = new byte[source.Length / 2];
         for (int i = 0; i < source.Length; i += 2) buffer[i / 2] = Convert.ToByte(source.Substring(i, 2), 16);
         return buffer;
         }
        
         /// <summary>
         /// 轉換成字符串
         /// </summary>
         private static string Bytes2Str(this IEnumerable<byte> source, string formatStr = "{0:X2}")
         {
         StringBuilder pwd = new StringBuilder();
         foreach (byte btStr in source) { pwd.AppendFormat(formatStr, btStr); }
         return pwd.ToString();
         }
        
         private static byte[] FormatByte(this string strVal, Encoding encoding)
         {
         return encoding.GetBytes(strVal.Base64().Substring(0, 16).ToUpper());
         }
        
         /// <summary>
         /// HashAlgorithm 加密統一方法
         /// </summary>
         private static string HashAlgorithmBase(HashAlgorithm hashAlgorithmObj, string source, Encoding encoding)
         {
         byte[] btStr = encoding.GetBytes(source);
         byte[] hashStr = hashAlgorithmObj.ComputeHash(btStr);
         return hashStr.Bytes2Str();
         }
        
         #endregion
         }
        }
        
        

        Program.cs代碼:

        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        
        namespace Test
        {
         class Program
         {
         static void Main(string[] args)
         {
        
         string plainText = "這是一條被和諧的消息!";
         //加密明文,獲得密文
         string EncryptText= Utils.PassWordHelper.Rsa(plainText);
         Console.WriteLine(EncryptText);
        
         //解密密文,獲得明文
         string DecryptText = Utils.PassWordHelper.UnRsa(EncryptText);
         Console.WriteLine(DecryptText);
         Console.ReadKey();
        
         }
         }
        }
        
        

        運行結果如圖:

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        .NET使用RSA加密解密的方法

        本文實例為大家分享了.NET使用RSA加密解密的具體代碼,供大家參考,具體內容如下:PassWordHelper.cs代碼。using System;using System.IO;using System.Text;using System.Globalization;using System.Collections.Generic;using System.Security.Cryptography;namespace Utils{ /// <;summary>;/// 密碼加密解密操作相關類 /// <;/summary>;public static class PassWordHelper { #region MD5 加密 /// <;/// <;"。
        推薦度:
        標簽: 加密 解密 net
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费毛片在线视频| 18成禁人视频免费网站| 午夜高清免费在线观看| 亚洲人成免费电影| 五月婷婷在线免费观看| 亚洲精品mv在线观看| 99re免费99re在线视频手机版| 国产偷v国产偷v亚洲高清| 国产精品九九久久免费视频| 4338×亚洲全国最大色成网站| 极品色天使在线婷婷天堂亚洲| 看全色黄大色大片免费久久| 国产精品亚洲а∨无码播放不卡| 全免费一级毛片在线播放| 亚洲国产精品99久久久久久| 国产一区二区三区免费在线观看 | 亚洲精品无码日韩国产不卡?V| 特级毛片A级毛片免费播放| 亚洲片一区二区三区| 国产日韩在线视频免费播放| 国产精品亚洲аv无码播放| 午夜免费啪视频在线观看| 亚洲欧洲国产成人精品| 成年女人免费v片| 免费无码又爽又黄又刺激网站| 亚洲乱码中文字幕手机在线 | 日韩中文无码有码免费视频| 一级免费黄色大片| 久久精品国产精品亚洲艾草网| a拍拍男女免费看全片| 亚洲AV成人片无码网站| 亚洲线精品一区二区三区影音先锋 | 4虎1515hh永久免费| 亚洲国产精品成人综合色在线| 亚洲精品无码AV中文字幕电影网站| 久草免费手机视频| 亚洲爆乳成av人在线视菜奈实| 亚洲乱码中文字幕久久孕妇黑人| 日本人的色道免费网站| 夜夜爽妓女8888视频免费观看| 亚洲高清资源在线观看|