当前位置:   article > 正文

c# Aes加解密和SHA256加解密方法_c# sha256

c# sha256
  1. Aes

    public static class AesUtil
    {
    #region AES加密
    ///
    /// aes加码
    ///
    ///
    ///
    ///
    public static string Encrypt(string toEncrypt)
    {
    try
    {

               byte[] keyArray = UTF8Encoding.UTF8.GetBytes("testtesttesttest");
               byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
    
    
               RijndaelManaged rDel = new RijndaelManaged();//using System.Security.Cryptography;     
               rDel.Key = keyArray;
               rDel.Mode = CipherMode.ECB;//using System.Security.Cryptography;     
               rDel.Padding = PaddingMode.PKCS7;//using System.Security.Cryptography;     
               ICryptoTransform cTransform = rDel.CreateEncryptor();//using System.Security.Cryptography;     
               byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    
               StringBuilder builder = new StringBuilder(resultArray.Length * 3);
               foreach (byte data in resultArray)
                   builder.Append(Convert.ToString(data, 16).PadLeft(2, '0').PadRight(3, ' '));
               return builder.ToString().ToUpper().Replace(" ", "");
    
           }
           catch (Exception ex)
           {
               Log.Error($"AesEncrypt ex:{ex.Message}");
               return "";
           }
           //return Convert.ToBase64String(resultArray, 0, resultArray.Length);
       }
    
    
       #endregion AES加密
    
       #region AES解密
       /// <summary>
       /// aes解码
       /// </summary>
       /// <param name="toDecrypt"></param>
       /// <returns></returns>
       public static string Decrypt(string toDecrypt)
       {
           try
           {
    
               byte[] keyArray = UTF8Encoding.UTF8.GetBytes("testtesttesttest");
    
               toDecrypt = toDecrypt.Replace(" ", "");
    
               byte[] comBuffer = new byte[toDecrypt.Length / 2];
    
               for (int i = 0; i < toDecrypt.Length; i += 2)
                   comBuffer[i / 2] = (byte)Convert.ToByte(toDecrypt.Substring(i, 2), 16);
    
    
               RijndaelManaged rDel = new RijndaelManaged();
               rDel.Key = keyArray;
               rDel.Mode = CipherMode.ECB;
               rDel.Padding = PaddingMode.PKCS7;
    
               ICryptoTransform cTransform = rDel.CreateDecryptor();
               byte[] resultArray = cTransform.TransformFinalBlock(comBuffer, 0, comBuffer.Length);
    
    
               return UTF8Encoding.UTF8.GetString(resultArray);
           }
           catch (Exception ex)
           {
               Log.Error($"AesDecrypt ex:{ex.Message}");
               return "";
           }
       }
       #endregion AES解密
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    }

  2. SHA256

    public static class SHA256EncryptUtil
    {
    /// SHA256加密,并十六进制编码
    ///
    ///
    ///
    public static string SHA256EncryptString(string data)
    {
    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data);
    byte[] hash = SHA256Managed.Create().ComputeHash(bytes);

           StringBuilder builder = new StringBuilder();
           for (int i = 0; i < hash.Length; i++)
           {
               builder.Append(hash[i].ToString("x2"));
           }
           return builder.ToString();
       }
    
    
       /// <summary>
       /// HMACSHA256加密
       /// </summary>
       /// <param name="message"></param>
       /// <param name="secret"></param>
       /// <returns></returns>
       public static string HmacSHA256(string message, string secret)
       {
           secret = secret ?? "";
           var encoding = new System.Text.UTF8Encoding();
           byte[] keyByte = encoding.GetBytes(secret);
           byte[] messageBytes = encoding.GetBytes(message);
           using (var hmacsha256 = new HMACSHA256(keyByte))
           {
               byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
               StringBuilder builder = new StringBuilder();
               for (int i = 0; i < hashmessage.Length; i++)
               {
                   builder.Append(hashmessage[i].ToString("x2"));
               }
               return builder.ToString();
           }
       }
    
       /// <summary>
       /// 二进制
       /// </summary>
       /// <param name="message"></param>
       /// <param name="secret"></param>
       /// <returns></returns>
       public static byte[] HmacSHA256Bytes(string message, string secret)
       {
           secret = secret ?? "";
           var encoding = new System.Text.UTF8Encoding();
           byte[] keyByte = encoding.GetBytes(secret);
           byte[] messageBytes = encoding.GetBytes(message);
           using (var hmacsha256 = new HMACSHA256(keyByte))
           {
               byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
               //StringBuilder builder = new StringBuilder();
               //for (int i = 0; i < hashmessage.Length; i++)
               //{
               //    builder.Append(hashmessage[i].ToString("x2"));
               //}
               return hashmessage;
           }
       }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    }

测试密钥

公钥
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp3nEMet00r0M72wQW5wpg1Gl06R2iH/p6L9HO5qPw8y2uu5ZXYyP9rcuzMzQ0Gr5NfdJMEf6FYKqe+UnMvURctTxCH+Nu0yKSjKJwWTthvyDZ3uKVZsK5ix56zsJNJt/zgFhsuioLXrSQuqea/G867VYqYp7Q2RzT0KBmmIVVG8Bh5NBEs8fhnHFpMH7x3WVWipUT+ulYCebVX+ncXeRPpJXNz/NpLp2ULoyGgKAzYaYoPNt4hf/hLekBmj5BkvYJZscRCxNybYwjM801OLzlUHKLj5X/8wvSXGChKTNXEphH5xB7idKeUhjeptsJnrrchiP/nRqyCyTTLHScHlG7QIDAQAB
-----END PUBLIC KEY-----

私钥
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnecQx63TSvQzvbBBbnCmDUaXTpHaIf+nov0c7mo/DzLa67lldjI/2ty7MzNDQavk190kwR/oVgqp75Scy9RFy1PEIf427TIpKMonBZO2G/INne4pVmwrmLHnrOwk0m3/OAWGy6KgtetJC6p5r8bzrtVipintDZHNPQoGaYhVUbwGHk0ESzx+GccWkwfvHdZVaKlRP66VgJ5tVf6dxd5E+klc3P82kunZQujIaAoDNhpig823iF/+Et6QGaPkGS9glmxxELE3JtjCMzzTU4vOVQcouPlf/zC9JcYKEpM1cSmEfnEHuJ0p5SGN6m2wmeutyGI/+dGrILJNMsdJweUbtAgMBAAECggEAYbReS6lMHG4Cj+OBn5B5f40wq0p1hKjrc8ez7Qf8+4QAzwmixTrt+kdgXEbZQ95EycEcx7gWJFp4z5MezVG//jhQ7l5L94tt2l+lklgpYukKWGLwj4TGVQZ5kkx80F4vr6WKs++bvfy7kiKCjgMX7oN72F1cEDMYOpNYPRMf0oOGL6wdlbUKSS8mpMVQ8N9PUGv9CnRM8MidptF716ZvIzyrRr7S4CYf71Re4VMeA5GIEYElhkMlI+m9DO8S1rm++TcclJwfPRKe4MLlHZigSzQ/RBy+xD+FvtnpDcNd2ltyv9yHOPS/skxbB81gJtqFksYQspAC3niqNs1t9dzcWQKBgQDeY+35LNz6R028kwB/1fcARbE1QZ7/NFvvcPccr1YbnsFWEPkYARs6L7RzD4dXmhpOlqtVrc1aIRyjYn9Xao6gMOCDluv2D0yghm3CxJ6jzNor9Kuv1WQPd3Uef4rAreaDHzBuJUGNelSZ576ugs/jf+N35YF2jDOgcXbhta1u3wKBgQDAyT1NkFu/rDdOegG5SYpCHBjvjeHKjDqPrmKSz+9pRDHp0AJgbJ4Yl6PNK7RpsDt0MFTSnTGmDTMNqlpcMInaE7qf4hMzrzRwoGvgzj/10l08mbjGnFLtEKVO53bTlTgjL3FPeDO83k3ceyTJLlfUGZtW8596GmPwn6RFRfBfswKBgQDTkMeU9EwpQWo/yq1/8AKyXJqwKoRjDuGjUZmUzW0ii44sHauLXYoUecu2ZoCAI1eBii7nLJgedT+0Y4D3naSf2r/MD+jcxkNEt351+u1csQahKHuopF4zpJZj9DwA/6868JH3RzQsrsMLQ3+Qr1usdz7kEg9uwwReT3MkWNzsiwKBgQC6DXysLnVdNcbqZbTkLKTRyGwIRNVztIGPyKw5I5PZ84Z4L9cbV7f749yhVVx34yx9pWc3G52es35h4dXywqVHYWLqijQd3SiuySNTgbkYdDynD3PTuWoOf9IJpDh5Wbkju9WO7GKCE8jwz6dgwOjiORRBhjySioWI44iVkjm5IQKBgFvbsJmh982qp9dsJuZTzTTcLjw/7wiB1a93Tw/HzPu9s4TjcVVdnJ0SFKHt/ZxToYbuPPHjqiWXi14+lYvp6OLVIsRXufUz965eiCEC3sF6risVhhMacy8KacxVwdIKcDaeSUn3/xEXQhEbghmrhj87RF4K1aA3D2GfK6aBG6V9
-----END PRIVATE KEY-----
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/850570
推荐阅读
相关标签