.NET Core 常用加密和Hash工具NETCore.Encrypt

前言

在我们日常开发工作中,为了数据安全问题对数据加密、解密是必不可少的。加密方式有很多种如常见的AES,RSA,MD5,SAH1,SAH256,DES等,这时候假如我们有一个封装的对应加密解密工具类可以直接调用,那这样可以节省不少的开发时间。今天推荐一款实用的.NET Core加密解密工具类库:NETCore.Encrypt。

HASH操作

MD5加密

var srcString = "Md5 hash";
var hashed = EncryptProvider.Md5(srcString);
var hashed1 = srcString.Md5();

SHA加密

var srcString = "sha hash";   
var hashed = EncryptProvider.Sha1(srcString); //SHA1
var hashed = EncryptProvider.Sha256(srcString); //SHA256
var hashed = EncryptProvider.Sha384(srcString); //SHA384
var hashed = EncryptProvider.Sha512(srcString); //SHA512

Base64加密&解密

var srcString = "base64 string"; 
var hashed = EncryptProvider.Base64Encrypt(srcString); //default encoding is UTF-8
var hashed = EncryptProvider.Base64Encrypt(srcString,Encoding.ASCII); //Encoding.ASCII

var encryptedStr = "xxxxx"; 
var strValue = EncryptProvider.Base64Decrypt(encryptedStr); //default encoding is UTF-8
var strValue = EncryptProvider.Base64Decrypt(encryptedStr,Encoding.ASCII); //Encoding.ASCII(需要与加密编码对应)

HMAC散列消息认证码

RSA加密&解密(非对称加密算法)

// 源码见扩展阅读
// 公钥&私钥
var rsaKey = EncryptProvider.CreateRsaKey(); 
// 签名&验证
string signStr = EncryptProvider.RSASign("待校验字符串", privateKey);
bool   result = EncryptProvider.RSAVerify("待校验字符串", signStr, publicKey); 
// 加密&解密
var encrypted = EncryptProvider.RSAEncrypt(publicKey, "明文字符串", RSAEncryptionPadding.Pkcs1);
var decrypted = EncryptProvider.RSADecrypt(privateKey, "加密字符串", RSAEncryptionPadding.Pkcs1);

DES加密&解密(对称加密算法)

// 源码见扩展阅读
// 加密&解密(string)
var encrypted = EncryptProvider.DESEncrypt("明文字符串", key, iv);
var decrypted = EncryptProvider.DESDecrypt("加密字符串", key, iv); 
// 加密&解密(byte[])
var encryptedBytes = EncryptProvider.DESEncrypt("明文字节数组", key, iv);
var decryptedBytes = EncryptProvider.DESDecrypt("加密字节数组", key, iv)

AES加密&解密(对称加密算法)

AES(高级加密标准)是一种对称加密算法,它于 2001 年被美国国家标准局(NIST)选为取代 DES 的新标准。相比于 DES,AES 具有更高的安全性和更好的性能。因此,在现代应用中,AES 已经成为最为广泛使用的对称加密算法之一。

虽然 DES 在过去曾经是最常用的对称加密算法之一,但由于其密钥长度较短(56 位),易受到暴力破解攻击,因此已经逐渐被淘汰。而 AES 支持多种密钥长度(128 位、192 位和 256 位),可以提供更高的安全性,因此更适合现代应用的需求。

// 源码见扩展阅读
// 加密&解密(string)
var encrypted = EncryptProvider.AESEncrypt("明文字符串", key, iv);
var decrypted = EncryptProvider.AESDecrypt("加密字符串", key, iv);
// 加密&解密(byte[])
var encryptedBytes = EncryptProvider.AESEncrypt("明文字节数组", key, iv);
var encryptedBytes = EncryptProvider.AESDecrypt("加密字节数组", key, iv);

扩展阅读

一款实用的.NET Core加密解密工具类库(github)
.NET Core 常用加密和Hash工具NETCore.Encrypt
一款实用的.NET Core加密解密工具类库

此处评论已关闭