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

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

  • 相关阅读:
    043_生成随机密码
    042_提示用户输入年份后测试判断是否为闰年
    041_查找 Linux 系统中的僵尸进程
    040_删除某个目录下大小为 0 的文件
    039_显示 CPU 厂商信息
    038_使用脚本自动创建逻辑卷
    037_自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)
    bzoj1537
    bzoj2466
    bzoj1047
  • 原文地址:https://www.cnblogs.com/zousc/p/13362342.html
Copyright © 2020-2023  润新知