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);

   其他加密方式与其上使用大致,至于原理,如果感兴趣可以自己深入研究~

 

posted @ 2021-01-14 10:31  贰拾~  阅读(1317)  评论(0编辑  收藏  举报