前言

在日常开发过程中,不可避免的涉及到数据加密解密(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相关推荐

  1. 五种常见的加密方式及常用的加解密工具

    如果你是互联网公司的信息安全从业者,那么你可能会经常需要处理撞库事件,撞库是黑客的无聊"恶作剧".黑客收集已经在互联网上泄露的用户和密码信息,生成对应的字典表,并尝试批量登录其他网 ...

  2. linux 网络安全工具,常用的Linux网络安全工具简介

    常用的Linux网络安全工具简介 互联网   发布时间:2008-10-08 22:12:04   作者:佚名   我要评论 常用的Linux网络安全工具简介 尽管各种版本的Linux distrib ...

  3. 看雪技术论坛加密与解密工具新年大礼包2007光盘

    看雪技术论坛加密与解密工具新年大礼包2007光盘 2009年10月30日 ├─Debuggers ;调试器 │ ├─OllyDbg │ │ ├─plugin ;各类OllyDbg插件 │ │ ├─Ol ...

  4. 【注意】加密与解密工具新年大礼包2007光盘提供下载

    加密与解密工具新年大礼包2007 CD1                        Crack New Year Presents 2007 Edition                     ...

  5. 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具nxpSecBoot用户指南

    痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具nxpSecBoot用户指南 nxpSecBoot 1 软件概览 1.1 介绍 nxpSecBoot是一个专为NXP MCU安全加密启动而设计的工具,其 ...

  6. JackHttp -- 浅谈编码、加密(对称加密,非对称加密,Hash算法)

    如果你还不清楚 JackHttp 是什么,请戳这里!!! JackHttp 是一个网络框架系列,为什么还要分享编码和加密呢?主要有如下几个原因: HTTP 在网络传输过程中是明文的. HTTP 在网络 ...

  7. Java常用加密解密算法全解

    数据编码.数字签名.信息加密 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入.交易.信息通讯.OAuth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加 ...

  8. java sm3国密算法加密、验证工具类

    java sm3国密算法加密.验证工具类 说明 maven依赖 完整代码 测试 说明 由于本人并不专于算法和密码学,所以如果发现工具类存在问题或者可优化地方,欢迎评论处提出. 工具类也可以直接使用封装 ...

  9. 【.Net】exe加密/加壳工具.Net Reactor

    用WPF开发的桌面应用,编译后得到的项目启动项exe文件是未加密的,使用ILSpy等反编译工具能够直接看到该exe内的文件源码! 如下图: 可以使用.Net Reactor(有破/解版)等工具对exe ...

最新文章

  1. boost::diagnostic_information_what的用法程序
  2. 动态SQL中变量赋值
  3. windows7系统屏幕一直闪屏的解决教程
  4. UI设计实用素材|网页陆地页面的业务和发展概念插图
  5. mysql升级代码_phpstudy 升级mysql 及MySQL服务等问题(示例代码)
  6. 在 Windows 上安装 TensorFlow(转载)
  7. linux软件安装完成信号,Linux信号机制解析
  8. Python 网络爬虫第二讲
  9. 西门子S7-300 PLC视频教程(百度网盘)收集于网络-供参考学习
  10. ubuntu18.04 安装绿联usb转网卡驱动
  11. 使用计算机录制声音10,win10怎么录音的同时录电脑声音怎么办
  12. Dfinity(ICP)介绍-1
  13. 分布形态的度量-偏度系数与峰度系数的探讨
  14. 计算机格式化命令符号,格式化c盘命令是什么 格式化c盘会怎么样【图文】
  15. 基于LED恒流驱动芯片芯鼎盛TX6122设计的DC-DC降压恒流DEMO
  16. Shader学习建议
  17. Druid配置文件properties的详细配置
  18. WPF TabControl 隐藏标头
  19. 零时科技创始人邓永凯先生受邀对话《公链隐私保护及生态安全》
  20. 多目标跟踪数据关联算法

热门文章

  1. 今天看论坛,有这样一句话,深有同感,还是家里好
  2. wamp的mysql单独使用_Windows 7+8.1+10 单独安装配置 PHP+Apache+MySQL(不使用 WAMP)
  3. window mysql 字符集_Windows mysql默认字符集修改
  4. python3操作mysql教程_python3操作mysql教程
  5. java soap协议头_java – 服务器无法识别HTTP标头“SOAPAction”的值
  6. 航空频率表 2020_飞亚达2020时光勋章品牌年会——往昔作序,来日为章
  7. c3p0连接池配置_Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统
  8. html代码闪烁的文字怎么打,HTML最简单的文字闪烁代码
  9. linux共享存储通信实验,Linux进程通信——共享存储
  10. 面试必问---Java线程池8大拒绝策略