在日常开发过程中,不可避免的涉及到数据加密解密(Hash)操作,所以就有想法开发通用工具,NETCore.Encrypt就诞生了。目前NETCore.Encrypt只支持.NET Core ,工具包含了AES,DES,RSA加密解密,MD5,SHA*,HMAC*等常用Hash操作。
AES 操作 创建AES 秘钥 1 2 3 4 var aseKey = EncryptProvider.CreateAesKey(); var key = aesKey.Key;var iv = aesKey.IV;
AES 加密 1 2 3 4 5 6 7 8 9 10 var srcString = "aes encrypt" ;var encrypted = EncryptProvider.AESEncrypt(srcString, key);var encrypted = EncryptProvider.AESEncrypt(srcString, key, iv);var srcBytes = new bytes []{xxxx};var encryptedBytes = EncryptProvider.AESEncrypt(srcBytes , key, iv);
AES 解密 1 2 3 4 5 6 7 8 9 10 var encryptedStr = "xxxx" ;var decrypted = EncryptProvider.AESDecrypt(encryptedStr, key);var decrypted = EncryptProvider.AESDecrypt(encryptedStr, key, iv);var encryptedBytes = new bytes []{xxxx};var encryptedBytes = EncryptProvider.AESDecrypt(encryptedBytes , key, iv);
DES 操作 创建DES 秘钥 1 2 var desKey = EncryptProvider.CreateDesKey();
DES加密 1 2 3 4 5 6 var srcString = "des encrypt" ;var encrypted = EncryptProvider.DESEncrypt(srcString, key);var srcBytes = new bytes []{xxxx};var encryptedBytes = EncryptProvider.DESEncrypt(srcBytes , key);
DES解密 1 2 3 4 5 6 var encryptedStr = "xxxx" ;var decrypted = EncryptProvider.DESDecrypt(encryptedStr, key); var encryptedBytes = new bytes []{xxxx};var decryptedBytes = EncryptProvider.DESDecrypt(decryptedBytes , key)
RSA 操作 RSA秘钥长度枚举 1 2 3 4 5 6 public enum RsaSize { R2048=2048 , R3072=3072 , R4096=4096 }
创建RSA秘钥 1 2 3 4 5 6 7 8 var rsaKey = EncryptProvider.CreateRsaKey(); var publicKey = rsaKey.PublicKey;var privateKey = rsaKey.PrivateKey;var exponent = rsaKey.Exponent;var modulus = rsaKey.Modulus;
RSA加密 Sign 和 Verify 方法 1 2 3 string rawStr = "xxx" ;string signStr = EncryptProvider.RSASign(rawStr, privateKey);bool result = EncryptProvider.RSAVerify(rawStr, signStr, publicKey);
RSA加密 1 2 3 4 5 6 7 var publicKey = rsaKey.PublicKey;var srcString = "rsa encrypt" ; var encrypted = EncryptProvider.RSAEncrypt(publicKey, srcString); var encrypted = EncryptProvider.RSAEncrypt(publicKey, srcString, RSAEncryptionPadding.Pkcs1);
RSA解密 1 2 3 4 5 6 var privateKey = rsaKey.PrivateKey;var encryptedStr = "xxxx" ;var decrypted = EncryptProvider.RSADecrypt(privateKey, encryptedStr); var decrypted = EncryptProvider.RSADecrypt(privateKey, encryptedStr, RSAEncryptionPadding.Pkcs1);
通过RSA秘钥创建RSA 1 2 var privateKey = rsaKey.PrivateKey;RSA rsa = EncryptProvider.RSAFromString(privateKey);
RSA 和 PEM 相互转换 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 var pkcs1KeyTuple = EncryptProvider.RSAToPem(false );var publicPem = pkcs1KeyTuple.publicPem;var privatePem = pkcs1KeyTuple.privatePem; var pkcs8KeyTuple = EncryptProvider.RSAToPem(true ); publicPem = pkcs8KeyTuple.publicPem; privatePem = pkcs8KeyTuple.privatePem; var rsa = EncryptProvider.RSAFromPem(pemPublicKey); rsa = EncryptProvider.RSAFromPem(pemPrivateKey); var rawStr = "xxx" ;var enctypedStr = EncryptProvider.RSAEncryptWithPem(pemPublicKey, rawStr);var decryptedStr = EncryptProvider.RSADecryptWithPem(pemPrivateKey, enctypedStr);
HASH 操作
MD5 1 2 var srcString = "Md5 hash" ;var hashed = EncryptProvider.Md5(srcString);
SHA 1 2 3 4 5 6 7 8 9 var srcString = "sha hash" ; var hashed = EncryptProvider.Sha1(srcString);var hashed = EncryptProvider.Sha256(srcString);var hashed = EncryptProvider.Sha384(srcString);var hashed = EncryptProvider.Sha512(srcString);
HMAC 1 2 3 4 5 6 7 8 9 10 11 12 13 var key="xxx" ;var srcString = "hmac hash" ; var hashed = EncryptProvider.HMACMD5(srcString,key);var hashed = EncryptProvider.HMACSHA1(srcString,key);var hashed = EncryptProvider.HMACSHA256(srcString,key);var hashed = EncryptProvider.HMACSHA384(srcString,key);var hashed = EncryptProvider.HMACSHA512(srcString,key);
BASE64 操作 Base64加密 1 2 3 4 5 var srcString = "base64 string" ; var hashed = EncryptProvider.Base64Encrypt(srcString); var hashed = EncryptProvider.Base64Encrypt(srcString,Encoding.ASCII);
Base64解密 1 2 3 4 5 var encryptedStr = "xxxxx" ; var strValue = EncryptProvider.Base64Decrypt(encryptedStr); var strValue = EncryptProvider.Base64Decrypt(encryptedStr,Encoding.ASCII);
EncryptExtensions扩展 引用命名空间 1 using NETCore.Encrypt.Extensions;
MD5 1 var hashed="some string" .MD5();
SHA 1 2 3 4 var hashed="some string" .SHA1();var hashed="some string" .SHA256();var hashed="some string" .SHA384();var hashed="some string" .SHA512();
HMAC 1 2 3 4 5 6 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);
github https://github.com/myloveCc/NETCore.Encrypt