赞
踩
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解密
}
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; } }
}
测试密钥
公钥
-----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-----
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。