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( |