加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#加密算法总结

发布时间:2020-12-16 01:14:36 所属栏目:百科 来源:网络整理
导读:C#加密算法总结 ? MD5加密 1 /// summary 2 /// MD5加密 3 /summary 4 param name="strPwd" 原字符串 /param 5 returns 加密后字符串 /returns 6 public static string GetMD5( string strPwd) 7 { 8 // MD5 对象创建的两种方式 9 MD5 md5 = MD5.Create(); 1

C#加密算法总结

?

MD5加密

 1         /// <summary>
 2         /// MD5加密
 3         </summary>
 4         <param name="strPwd">原字符串</param>
 5         <returns>加密后字符串</returns>
 6         public static string GetMD5(string strPwd)
 7         {
 8             //MD5 对象创建的两种方式
 9             MD5 md5 = MD5.Create();
10             MD5 md5 = new MD5CryptoServiceProvider();
11             将输入的密码转换成字节数组
12             byte[] bPwd = Encoding.UTF8.GetBytes(strPwd);    
13             计算指定字节数组的哈希值
14             byte[] bMD5 = md5.ComputeHash(bPwd);
15             释放加密服务提供类的所有资源
16             md5.Clear();   
17             StringBuilder sbMD5Pwd =  StringBuilder();
18             for (int i = 0; i < bMD5.Length; i++)
19             {
20                 将每个字节数据转换为2位的16进制的字符
21                 sbMD5Pwd.Append(bMD5[i].ToString("x2"));
22             }
23             return sbMD5Pwd.ToString();
24         }

?

SHA1加密

 使用 SHA1 加密算法来加密
<param name="sourceString">string SHA1_Encrypt( sourceString)
byte[] StrRes = Encoding.UTF8.GetBytes(sourceString);
 9             HashAlgorithm iSHA =  SHA1CryptoServiceProvider();
10             StrRes = iSHA.ComputeHash(StrRes);
11             StringBuilder EnText = foreach (byte iByte in StrRes)
13 14                 EnText.AppendFormat({0:x2},iByte);
15 16              EnText.ToString();
17         }

?

SHA256加密

 SHA256 加密
string SHA256_Encrypt(byte[] data = 9             SHA256 shaM = SHA256.Create();
10             byte[] result = shaM.ComputeHash(data);
 result)
17         }

?

SHA384加密

 SHA384 加密
string SHA384_Encrypt( 9             SHA384 shaM = SHA384.Create();
17         }

?

SHA512加密

?

 SHA512_加密
string SHA512_Encrypt( 9             SHA512 shaM =  SHA512Managed();
17         }

?

AES加密、解密

?

 AES加密
<param name="encryptStr">加密字符串<param name="encryptKey">密钥 6         密码 7         string AESEncrypt(string encryptStr, encryptKey)
 8 if (.IsNullOrWhiteSpace(encryptStr))
10                 return .Empty;
11 
12             encryptKey = StringHelper.SubString(encryptKey,32);
13             encryptKey = encryptKey.PadRight(32,1)">' '14 
分组加密算法
16             SymmetricAlgorithm des = Rijndael.Create();
17             byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptStr);得到需要加密的字节数组 
设置密钥及密钥向量
19             des.Key = Encoding.UTF8.GetBytes(encryptKey);
20             des.IV = _aeskeys;
21             byte[] cipherBytes = null;
22             using (MemoryStream ms =  MemoryStream())
23 24                 using (CryptoStream cs =  CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write))
25                 {
26                     cs.Write(inputByteArray,1)">027                     cs.FlushFinalBlock();
28                     cipherBytes = ms.ToArray();得到加密后的字节数组
29                     cs.Close();
30                     ms.Close();
31                 }
32 33              Convert.ToBase64String(cipherBytes);
34         }
35 
36         37          AES解密
38         39         <param name="decryptStr">解密字符串40         <param name="decryptKey">41         原码42         string AESDecrypt(string decryptStr,1)"> decryptKey)
43 44             .IsNullOrWhiteSpace(decryptStr))
45                 46 
47             decryptKey = StringHelper.SubString(decryptKey,1)">48             decryptKey = decryptKey.PadRight(49 
50             byte[] cipherText = Convert.FromBase64String(decryptStr);
51 
52             SymmetricAlgorithm des =53             des.Key = Encoding.UTF8.GetBytes(decryptKey);
54             des.IV =55             byte[] decryptBytes = new byte[cipherText.Length];
56              MemoryStream(cipherText))
57 58                 59 60                     cs.Read(decryptBytes,decryptBytes.Length);
61 62 63 64 65             return Encoding.UTF8.GetString(decryptBytes).Replace(",1)">"");将字符串后尾的''去掉
66         }

?

DES加密

  

 DES加密字符串
<param name="encryptString">待加密的字符串加密密钥,要求为8位加密成功返回加密后的字符串,失败返回源串string EncryptDES(string encryptString,1)">try
10 11                 byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0,1)">812                 byte[] rgbIV = Keys;
13                 byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
14                 DESCryptoServiceProvider dCSP =  DESCryptoServiceProvider();
15                 MemoryStream mStream =  MemoryStream();
16                 CryptoStream cStream =  CryptoStream(mStream,dCSP.CreateEncryptor(rgbKey,rgbIV),CryptoStreamMode.Write);
17                 cStream.Write(inputByteArray,1)">18                 cStream.FlushFinalBlock();
19                  Convert.ToBase64String(mStream.ToArray());
20 catch
23                  encryptString;
24 26 
27         28          DES解密字符串
29         30         <param name="decryptString">待解密的字符串31         解密密钥,要求为8位,和加密密钥相同32         解密成功返回解密后的字符串,失败返源串33         string DecryptDES(string decryptString,1)">35             36 37                 byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(38                 39                  Convert.FromBase64String(decryptString);
40                 DESCryptoServiceProvider DCSP = 41                 MemoryStream mStream = 42                 CryptoStream cStream = 43                 cStream.Write(inputByteArray,1)">44  Encoding.UTF8.GetString(mStream.ToArray());
46 47             48 49                  decryptString;
50 51         }

?

加密方法封装代码:

  1 using System.IO;
  2  System.Security.Cryptography;
  3  System.Text;
  4 
  5 namespace EncryptTools
  6 {
  7     class EncryptHelper
  8     {
  9          10          获取某个哈希算法对应下的哈希值
 11          12         源字符串 13         <param name="algorithm">哈希算法 14         经过计算的哈希值 15         private string GetHash( sourceString,HashAlgorithm algorithm)
 16  17             byte[] sourceBytes = 18              algorithm.ComputeHash(sourceBytes);
 19             algorithm.Clear();
 20             StringBuilder sb = new StringBuilder( 21             0; i < result.Length; i++ 22  23                 sb.Append(result[i].ToString(X2 24  25              sb.ToString();
 26  27 
 28          29          获取MD5值
 30          31          32         MD5值 33          34  35             MD5CryptoServiceProvider md5 =  36              GetHash(sourceString,md5);
 37  38 
 39          40          获取SHA1值
 41          42          43         SHA1值 44         string GetSHA1( 45  46             SHA1 sha1 =  47              48  49 
 50          51          获取SHA256值
 52          53          54         SHA256值 55         string GetSHA256( 56  57             SHA256 sha256 = 58              59  60 
 61          62          获取SHA384值
 63          64          65         SHA384值 66         string GetSHA384( 67  68             SHA384 sha384 = 69              70  71 
 72          73          获取SHA512值
 74          75          76         SHA512值 77         string GetSHA512( 78  79             SHA512 sha512 = SHA512.Create();
 80              81  82 
 83         string GetFileBase64String( filePath)
 84  85             using (FileStream fs =  FileStream(filePath,FileMode.Open,FileAccess.Read,FileShare.Read))
 86  87                 using (BinaryReader reader =  BinaryReader(fs))
 88  89                      90                     {
 91                         return GetBase64String(reader.ReadBytes((int)fs.Length));
 92                     }
 93                     catch (System.Exception ex)
 94  95                         throw ex;
 96  97  98  99 100 
101         string GetBase64String(102 103             byte[] buffer =104              GetBase64String(buffer);
105 106 
107         108 109              encoding.GetBytes(sourceString);
110             111 112 
113         [] sourceBytes)
114 115             string base64String = System.Convert.ToBase64String(sourceBytes);
116              base64String;
117 118     }
119 }
View Code

?

?

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读