日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core 常用加密和Hash工具NETCore.Encrypt 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

?在日常開發過程中,不可避免的涉及到數據加密解密(Hash)操作,所以就有想法開發通用工具,NETCore.Encrypt就誕生了。目前NETCore.Encrypt只支持.NET Core ,工具包含了AES,DES,RSA加密解密,MD5,SHA*,HMAC*等常用Hash操作。

項目地址

https://github.com/myloveCc/NETCore.Encrypt

通過Nuget安裝

Install-Package NETCore.Encrypt -Version 2.0.6

AES 操作

創建AES 秘鑰

var aseKey = EncryptProvider.CreateAesKey();var key = aesKey.Key;
var iv = aesKey.IV;

?AES 加密

var srcString = "aes encrypt";
//不帶加密向量
var encrypted = EncryptProvider.AESEncrypt(srcString, key);

 

var srcString = "aes encrypt";
//帶加密向量
var encrypted = EncryptProvider.AESEncrypt(srcString, key, iv);

?

//對byte[] 進行aes加密(version 2.0.6)
var srcBytes = new bytes[]{xxxx};
//帶加密向量
var encryptedBytes = EncryptProvider.AESEncrypt(srcBytes , key, iv);

  

AES 解密

var encryptedStr = "xxxx";
//不帶加密向量(與加密方式對應)
var decrypted = EncryptProvider.AESDecrypt(encryptedStr, key);

  

var encryptedStr = "xxxx";
//帶加密向量
var decrypted = EncryptProvider.AESDecrypt(encryptedStr, key, iv);

?

//對byte[] 進行aes解密(version 2.0.6)
var encryptedBytes = new bytes[]{xxxx};
//帶加密向量
var encryptedBytes = EncryptProvider.AESDecrypt(encryptedBytes , key, iv);

  

DES 操作

創建DES 秘鑰

//秘鑰長度為24
var desKey = EncryptProvider.CreateDesKey();

DES加密

var srcString = "des encrypt";
var encrypted = EncryptProvider.DESEncrypt(srcString, key);

?

//對byte[] 進行des加密(version 2.0.6)
var srcBytes = new bytes[]{xxxx};
var encryptedBytes = EncryptProvider.DESEncrypt(srcBytes , key);

  

DES解密

var encryptedStr = "xxxx";
var decrypted = EncryptProvider.DESDecrypt(encryptedStr, key); 

?

//對byte[] 進行des解密(version 2.0.6)
var encryptedBytes = new bytes[]{xxxx};
var decryptedBytes = EncryptProvider.DESDecrypt(decryptedBytes , key)

  

RSA 操作

?RSA秘鑰長度枚舉?

public enum RsaSize
{R2048=2048,R3072=3072,R4096=4096
}

?創建RSA秘鑰

var rsaKey = EncryptProvider.CreateRsaKey();    //default is 2048// var rsaKey = EncryptProvider.CreateRsaKey(RsaSize.R3072);var publicKey = rsaKey.PublicKey;
var privateKey = rsaKey.PrivateKey;
var exponent = rsaKey.Exponent;
var modulus = rsaKey.Modulus;

?RSA加密

var publicKey = rsaKey.PublicKey;
var srcString = "rsa encrypt";var encrypted = EncryptProvider.RSAEncrypt(publicKey, srcString);//on mac/linux at version 2.0.5
var encrypted = EncryptProvider.RSAEncrypt(publicKey, srcString, RSAEncryptionPadding.Pkcs1);

?RSA解密

var privateKey = rsaKey.PrivateKey;
var encryptedStr = "xxxx";
var decrypted = EncryptProvider.RSADecrypt(privateKey, encryptedStr);//on mac/linux at version 2.0.5
var decrypted = EncryptProvider.RSADecrypt(privateKey, encryptedStr, RSAEncryptionPadding.Pkcs1);

通過RSA秘鑰創建RSA

var privateKey = rsaKey.PrivateKey;
RSA rsa = EncryptProvider.RSAFromString(privateKey);

HASH 操作

?MD5

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

?SHA

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

?HMAC

var key="xxx";
var srcString = "hmac hash";     //MD5
var hashed = EncryptProvider.HMACMD5(srcString,key);
//HMACSHA1
var hashed = EncryptProvider.HMACSHA1(srcString,key);
//HMACSHA256
var hashed = EncryptProvider.HMACSHA256(srcString,key);
//HMACSHA384
var hashed = EncryptProvider.HMACSHA384(srcString,key);
//HMACSHA512
var hashed = EncryptProvider.HMACSHA512(srcString,key);

BASE64 操作

Base64加密

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

Base64解密

var encryptedStr = "xxxxx";    
var strValue = EncryptProvider.Base64Decrypt(encryptedStr);   //default encoding is UTF-8//Encoding.ASCII(需要與加密編碼對應)
var strValue = EncryptProvider.Base64Decrypt(encryptedStr,Encoding.ASCII); 

EncryptExtensions擴展

引用命名空間

using NETCore.Encrypt.Extensions; 

MD5

var hashed="some string".MD5();

SHA

var hashed="some string".SHA1();
var hashed="some string".SHA256();
var hashed="some string".SHA384();
var hashed="some string".SHA512();

HMAC

var key="xxx";
var hashed="some string".HMACMD5(key);
var hashed="some string".HMACSHA1(key);
var hashed="some string".HMACSHA256(key);
var hashed="some string".HMACSHA384(key);
var hashed="some string".HMACSHA512(key);

Make .NET Great Again

很簡單的一個工具,如果大家有新的需求,可以提issue,你也可以參與到項目中,讓這個工具更加完善,希望對大家有幫助。

?

轉載于:https://www.cnblogs.com/piscesLoveCc/p/7423205.html

總結

以上是生活随笔為你收集整理的.NET Core 常用加密和Hash工具NETCore.Encrypt的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。