测试开源加解密库NETCore.Encrypt中的RSA加解密函数

news2025/1/13 19:44:58

  微信公众号“dotNET跨平台”的文章《开箱即用,.NET最全的加解密开源库》介绍了开源通用工具库NETCore.Encrypt,其支持对称加密算法、非对称加密算法、摘要算法等多种常用算法,使用方便,不过目前仅支持.net core。本文主要测试调用其中的RSA算法进行加解密(RSA算法的原理介绍请见参考文献4)。
  新建Winform项目,在NuGet包管理器中安装NETCore.Encrypt,如下图所示:

在这里插入图片描述
  在NETCore.Encrypt模块中,最重要的类是EncryptProvider,其支持的所有算法都以静态函数的形式定义在该类中,加密算法的话,一般都是以算法简称+Encryp/Decrypt的形式提供,如果需要密钥,EncryptProvider类中也提供有对应的密钥创建函数。
在这里插入图片描述
  EncryptProvider类中与RSA相关的的函数主要分成三类:密钥创建函数(CreateRsaKey)、加密/解密函数(RSAEncrypt/RSADecrypt)、签名/验签函数(RSASign/RSAVerify):
  密钥创建函数生成RSA算法所需的公钥、私钥、公开整数n和e,支持2048、3072、4096位数,默认为2048位。生成的密钥如下图所示。由于EncryptProvider类都是静态函数,并且RSA加解密函数的输入参数中仅包含公钥/私钥,其它密钥信息都包含在密钥创建函数的各个返回值中,并且值用base64处理。

在这里插入图片描述

  公钥:{"Modulus":"rIzt6+VMrqGnzDZYAMRTKyRSZSO/jBOfx8i+UkGcaJy9NpogEHavZfLC7z/Jkutv2SGPdrB7feBW3wYrpik03JKVlgc9KJeQH/jGOCmTerN66gxSXTkjX4SOmzXDw3FbQ0HIoR2R8HyPmatls2F99rYIxnFBnBzfUhwmSMFMDzvByzwyFam8YN92xt3vTRw+3tZ9CjM0MEzqNpU8xbDbrLm8iVwWemvCcmHEBmCOfz+eV2WavYOpwIfwS2bNqZkVkbtRfAMjY/hULwQZZzXq/wmvZ2aNCTk3meK4p9laUPcqMSJ+nyKgCTIh7BdOpbhZ+fuuMCDe8yGijIPInw/nvQ==","Exponent":"AQAB","P":null,"Q":null,"DP":null,"DQ":null,"InverseQ":null,"D":null}
  私钥:{"Modulus":"rIzt6+VMrqGnzDZYAMRTKyRSZSO/jBOfx8i+UkGcaJy9NpogEHavZfLC7z/Jkutv2SGPdrB7feBW3wYrpik03JKVlgc9KJeQH/jGOCmTerN66gxSXTkjX4SOmzXDw3FbQ0HIoR2R8HyPmatls2F99rYIxnFBnBzfUhwmSMFMDzvByzwyFam8YN92xt3vTRw+3tZ9CjM0MEzqNpU8xbDbrLm8iVwWemvCcmHEBmCOfz+eV2WavYOpwIfwS2bNqZkVkbtRfAMjY/hULwQZZzXq/wmvZ2aNCTk3meK4p9laUPcqMSJ+nyKgCTIh7BdOpbhZ+fuuMCDe8yGijIPInw/nvQ==","Exponent":"AQAB","P":"yJdfcbK4DumFFfDxr2ZXAA1Fst73EpLXfe+ZvbvExlUdlB6uKo/9N5uxJ+eMCtt95n+fZW2roLOY0JsVY88l8wJ80WFAmDqaJiw6bv5iz8WwnDme/WUihX8QUQyqeZSCbO5ROOwkq1YGtOZESG9L2fVTYBwFFsyL80aBLPbZ/ss=","Q":"3Dathvjb/F6P+hQfeWjW87sr/BFTwZwOFF8NDCy/IOsCD1SaM+l433q/vhUwQKPhf2jn0IcBunp4hy2HOegu02F1O0yXj290zzDBlA3UpdlIt6FNLvbmDKyBthQEWzC8f0T1iUnMDngLfXAr7xcpvUS10Vaz8vNg3z/+MySOGpc=","DP":"Scj8r8sIz1twu/hsPpPLjtZS/A/uHGPtZoK7L8KhCD+I6NI8SKW8hDb9/Gq85cWFU0NAs8OarTtDDADv5k3tbK1OkopOg3CTAVWljOyAFmNmqqC7bgREpYxuyRF6p8xMCZvEPscGWgwD3YkSNv7RjPQj3ieQa6mEFVGq9Io89+8=","DQ":"fTIMx552Gu1791Y3aqPjCOBRqlYDgyAAlS5Q0aoi40kYe7TCkl7a3FsB5cRQEX/aNMBkgpYusmDsYxXMOmy5Km3O426w/9gC1cRHWa/fRIbao6NtqRSvR2dPuz94FowHrmd7HJk7DMLM7Xy3TY+iqDsHD0O2vJoHagUMtPDEZXM=","InverseQ":"WDQtTLZ/9/bpZLCx477jSdcxqbMRI0pyqBXt7bd02lPCJghCpQ9Kj+Q9fmGiXJG0U3CtXrfLh09x2ngrNsCS8cCUAFiKzoOsbVcUUIbUqHRNTslyyUBkP6k2nYPy0mnlh4x0D9T1wxuVfN+o91Y9EJiX/nxXOUwlZYAtPQeOqQI=","D":"fNJiFqDErRuSGB9D4CIli/L1i+alXT6g+lRUoYqHDAI+um4aPe6tiZFoxMwfFKIuQiON9a1LWE7eaO28y7HJZLrBbUuFSYUCpK5BLkWdQ0js5LzPJFL+LM3mn47wM8Uf4PKIoUyT0yU4eFDN/ErNZZhflrY9YSJdxrdIVp9GV0mRyPHNldllSGq6lP1+pYCpXuTDV2iLctiAde4/t5Iaqyl6dkcDd+Y/9P20kcL7GMDp8gH9ZG/rXPZf81UyBA64PIX5uS7M9LtGdaeWDHNBE6Ihp+irYP3s3nWPRxlSjDVW2vqHPI31X9YFafv6tQmFend/F0EysJ1G0uODe6H7nQ=="}
  e:010001
  n:AC8CEDEBE54CAEA1A7CC365800C4532B24526523BF8C139FC7C8BE52419C689CBD369A201076AF65F2C2EF3FC992EB6FD9218F76B07B7DE056DF062BA62934DC929596073D2897901FF8C63829937AB37AEA0C525D39235F848E9B35C3C3715B4341C8A11D91F07C8F99AB65B3617DF6B608C671419C1CDF521C2648C14C0F3BC1CB3C3215A9BC60DF76C6DDEF4D1C3EDED67D0A3334304CEA36953CC5B0DBACB9BC895C167A6BC27261C406608E7F3F9E57659ABD83A9C087F04B66CDA9991591BB517C032363F8542F04196735EAFF09AF67668D09393799E2B8A7D95A50F72A31227E9F22A0093221EC174EA5B859F9FBAE3020DEF321A28C83C89F0FE7BD  

  函数调用比较简单,本文使用以下函数进行加解密(EncryptProvider类中的RSA函数有多种重载函数,支持多种明文形式),加解密的测试截图如下图所示:

public static string RSAEncrypt(string publicKey, string srcString)
public static string RSADecrypt(string privateKey, string srcString)

在这里插入图片描述

参考文献:
[1]https://blog.csdn.net/sD7O95O/article/details/132893071
[2]https://github.com/myloveCc/NETCore.Encrypt
[3]https://www.cnblogs.com/piscesLoveCc/p/7423205.html
[4]https://baike.baidu.com/item/RSA%E7%AE%97%E6%B3%95

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1198018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue-入门介绍

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容,初识vue入门到项目实战详解 目录 一.Vue介绍 二.初识Vue 工具安装 创建项目 目录结构介绍 项…

主题模型LDA教程:一致性得分coherence score方法对比(umass、c_v、uci)

文章目录 主题建模潜在迪利克雷分配(LDA)一致性得分 coherence score1. CV 一致性得分2. UMass 一致性得分3. UCI 一致性得分4. Word2vec 一致性得分5. 选择最佳一致性得分 主题建模 主题建模是一种机器学习和自然语言处理技术,用于确定文档…

文心耀乌镇,“大模型之光”展现了什么?

“乌镇的小桥流水,能照见全球科技的风起云涌。” 多年以来,伴随着中国科技的腾飞,以及世界互联网大会乌镇峰会的连续成功举办,这句话已经成为全球科技产业的共识。乌镇是科技与互联网的风向标、晴雨表,也是无数新故事开…

2023-11-11 LeetCode每日一题(情侣牵手)

2023-11-11每日一题 一、题目编号 765. 情侣牵手二、题目链接 点击跳转到题目位置 三、题目描述 n 对情侣坐在连续排列的 2n 个座位上,想要牵到对方的手。 人和座位由一个整数数组 row 表示,其中 row[i] 是坐在第 i 个座位上的人的 ID。情侣们按顺…

SQL必知会(二)-SQL查询篇(4)-高级过滤

第5课、高级过滤 组合 WHERE 子句 AND OR:与条件、或条件 多个 WHERE 子句有两种使用方式:AND 子句 或 OR 子句。 1)AND 操作符 AND 相当于编程语言中的与条件。 需求:如果某个产品由供应商 DLL01 制造,但价格不高…

java项目之共享充电宝管理系统(ssm框架)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的共享充电宝管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 管理员:首页、个…

Shell编程入门--概念、特性、bash配置文件

目录 一、Shell概念1.定义2.分类和使用场景2.1.分类和切换2.2.使用场景 3.特性3.1.文件描述符与输出重定向3.2.历史命令---history3.3.别名 --alias3.4.命令排序执行3.5.部分快捷键3.6.通配符置换 4.脚本规范5.脚本运行方式5.1.bash脚本执行5.2.bash脚本测试 二、bash配置文件1…

Oracle(18)Auditing

文章目录 一、基础知识1、审计介绍2、Auditing Types 审计类型3、Auditing Guidelines 审计准则4、Auditing Categories 审核类别5、Database Auditing 数据库审计6、Auditing User SYS 审计sys用户7、Getting Auditing Informatio 获取审计信息8、获取审计记录通知 二、基础操…

(三)、MySQL索引

一、索引基础 索引是存储引擎用于快速找到记录的一种数据结构。(可以理解为一本书的目录)。 例子:where id1 如果在id列上建有索引,则MySQL将使用该索引找到id为1的行,也就是说,MySQL先在索引上按值进行查找,然…

Java10新增特性

版本介绍 Java 10 的发布时间是2018年3月20日。这是在Java 9之后,采用了基于时间发布的策略,每6个月一个版本。这是采用新的发布策略之后的第一个版本。 Java 10 是Java版本历史上最快的一个版本。它打破了Java缓慢增长和进化的概念。它是一个具有许多…

【树与二叉树的转换,哈夫曼树的基本概念】

文章目录 树与二叉树的转换将二叉树转化为树森林与二叉树的转化(二叉树与多棵树之间的关系)二叉树转换为森林森林的先序遍历1)先序遍历2)后序遍历 哈夫曼树的基本概念森林转换成二叉树(二叉树与多棵树的关系&#xff0…

Sensor 点亮出图后,颜色偏红或者偏绿是为什么?

这是因为 sensor balck level 的值配置的不正确导致,black level 的值一般在效果参数的 calibration 参数里面。 在驱动调试阶段,我们一般都是复用其他已调试好的,sensor 的驱动文件及效果文件, 而不同 sensor 的 balck level 的…

YOLOv8-Seg改进:分割注意力系列篇 | 高效的通道先验卷积注意力(CPCA) | 中科院 2023.6

🚀🚀🚀本文改进:高效的通道先验卷积注意力(CPCA)方法,支持注意力权重在通道和空间维度上的动态分布; 🚀🚀🚀CPCA 小目标分割检测&复杂场景首选,实现涨点 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新…

奇舞周刊第510期:浏览器和图形引擎渲染对比

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 浏览器和图形引擎渲染对比 本文从介绍浏览器渲染引擎开始,逐渐引出和图形引擎的比较,尝试从图形视角探索和理解浏览器的渲染原理。 Next.js的崛起&#xff…

消息队列使用场景

🎈个人公众号:🎈 :✨✨✨ 可为编程✨ 🍟🍟 🔑个人信条:🔑 知足知不足 有为有不为 为与不为皆为可为🌵 🍉本篇简介:🍉 本篇记录消息队列使用场景,如有出入还望…

基于STC12C5A60S2系列1T 8051单片机串口通信信应用

基于STC12C5A60S2系列1T 8051单片机串口通信应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能寄存器列表基于STC12C5A60S2系列1T 8051单片…

力扣字符串--总结篇

前言 字符串学了三天,七道题。初窥kmp,已经感受到算法的博大精深了。 内容 对字符串的操作可以归结为以下几类: 字符串的比较、连接操作(不同编程语言实现方式有所不同); 涉及子串的操作,比…

Sagemaker基础操作指南

简介 Amazon SageMaker是亚马逊AWS提供的一项托管式机器学习服务,旨在简化和加速机器学习开发的整个生命周期。它为机器学习工程师和数据科学家提供了一套完整的工具和功能,用于构建、训练、调优和部署机器学习模型。本文将会通过一个简单的例子&#x…

linux_day02

1、链接:LN 一个点表示当前工作目录,两个点表示上一层工作目录; 目录的本质:文件(该文件储存目录项,以链表的形式链接,每个结点都是目录项,创建文件相当于把目录项添加到链表中&…

111111111111111

全局锁 就是对整个数据库进行加锁,加锁之后整个数据库就处于只读状态,后续的DML写语句,DDL语句,以及对更新事务的提交操作都会被阻塞,典型地使用场景就是做整个数据库的逻辑备份,对所有的表进行锁定&#x…