NetCore.Encrypt —— 整合加密
前言
最近呢又接触到加密了,回顾之前用到的加密经历,使用过DES、RSA、MD5、BASE64,前面也更新过两篇加密的文章,MD5加密和DES加密。之前的使用都是在.Net Framework平台,这次使用是在.Net Core项目中,所以借此机会记录下所学。
NETCore.Encrypt
.Net Core中使用加密需要NuGet一下NETCore.Encrypt包(目前最新版本为2.0.9),搜索后一看看到以下描述
NETCore encrypt and decrpty tool,Include AES,RSA,MD5,SAH1,SAH256,SHA384,SHA512
可以看到包含的加密方式有AES、RSA、MD5、SAH1、SAH256、SHA384、SHA512,简直不要太爽,包含多种加密方式,而且使用简单,下面来看看使用方式;
使用
首先认识下NETCore.Encrypt.EncryptProvider类,加密方式都在这个类下
DES
DES是对称加密,既然是对称加密,必然需要密钥,在DES加密中需要使用到KEY,在EncryptProvider下有EncryptProvider.CreateDesKey()方法可用生成KEY,可直接使用
var KEY = EncryptProvider.CreateDesKey(); var IV = EncryptProvider.CreateDesIv();
加密的方法有多个重载
public static string DESDecrypt(string data, string key); public static byte[] DESDecrypt(byte[] data, string key); public static byte[] DESDecrypt(byte[] data, string key, string vector); public static byte[] DESEncrypt(byte[] data, string key); public static string DESEncrypt(string data, string key); public static byte[] DESEncrypt(byte[] data, string key, string vector);
使用时只需要将待加密内容以及生成的KEY传进去即可
EncryptProvider.DESEncrypt(str, KEY);
EncryptProvider.DESEncrypt(byteData, KEY, IV);
AES
AES是一个对称密码,旨在取代DES成为广泛使用的标准,NETCore.Encrypt中使用方式与DES一样,首先是申请KEY、IV
var aeskey = EncryptProvider.CreateAesKey(); var KEY = aeskey.Key; var IV = aeskey.IV;
加密解密方法
public static string AESDecrypt(string data, string key, string vector); public static byte[] AESDecrypt(byte[] data, string key, string vector); public static string AESDecrypt(string data, string key); public static string AESEncrypt(string data, string key, string vector); public static byte[] AESEncrypt(byte[] data, string key, string vector); public static string AESEncrypt(string data, string key);
对数据进行加密解密
EncryptProvider.AESEncrypt(str, KEY, IV);
EncryptProvider.AESEncrypt(str, KEY);
EncryptProvider.AESDecrypt(encryptStr, KEY);
EncryptProvider.AESDecrypt(encryptStr, KEY, IV);
Base64
Base64是最常见的用于传递8Bit字节的编码方式,可在HTTP环境下传输较长的标识信息,具有不可读性,解码后可读,它的运用不在加密上,用它加密也没毛病。
public static string Base64Decrypt(string input); public static string Base64Decrypt(string input, Encoding encoding); public static string Base64Encrypt(string input, Encoding encoding); public static string Base64Encrypt(string input);
可以看到Base64加密解密有个Encoding类型参数,默认使用utf-8,也可以使用ASCII码
EncryptProvider.Base64Encrypt(str);
EncryptProvider.Base64Encrypt(str,Encoding.ASCII);
EncryptProvider.Base64Decrypt(str);
EncryptProvider.Base64Decrypt(str, Encoding.ASCII);
其他加密方式与其上使用大致,至于原理,如果感兴趣可以自己深入研究~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现