架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1456|回复: 1

[资料] .NET/C# RSA 之 PEM 格式加密解密

[复制链接]
发表于 2023-6-1 21:33:57 | 显示全部楼层 |阅读模式
需求:朋友和第三方系统联调,接口传输之间都是使用 RSA 算法加解密 HTTP 内容,由于第三方项目是 Java 开发的,由对方提供公钥和私钥,然后是 PEM 格式的,.NET/C# 如何基于 PEM 证书对内容加解密呢?

PEM 格式

PEM格式通常用于数字证书认证机构(Certificate Authorities,CA),扩展名为.pem, .crt, .cer, and .key。内容为Base64编码的ASCII码文件,有类似"-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----"的头尾标记。服务器认证证书,中级认证证书和私钥都可以储存为PEM格式(认证证书其实就是公钥)。Apache和类似的服务器使用PEM格式证书。

回顾:

java中RSA加解密的实现
https://www.itsvse.com/thread-6987-1-1.html

.net core使用rsa加密算法报错解决方案
https://www.itsvse.com/thread-4884-1-1.html

支付宝RSA私钥及公钥一键生成工具
https://www.itsvse.com/thread-2909-1-1.html

RSA生成公钥和私钥,以及加解密
https://www.itsvse.com/thread-2470-1-1.html

c# RSA加密解密分段加密和分段解密
https://www.itsvse.com/thread-2779-1-1.html
首先,通过“支付宝RAS密钥生成器SHAwithRSA1024_V1.0”来生成 PEM 格式的公钥和私钥,如下:

QQ截图20230601212912.jpg

下载地址:https://down.itsvse.com/item/jkgqnr.html

私钥文件:rsa_private_key_pkcs8.pem
公钥文件:rsa_public_key.pem

新建一个 .NET 6 的控制台应用,通过 nuget 引用 BouncyCastle.Cryptography 第三方包,如下:

代码如下:

测试 RSA 加密、解密,如下图:

QQ截图20230601213305.jpg

(完)





上一篇:.NET Core 类库读取版本和嵌入的资源
下一篇:Docker 基于 Windows 系统构建镜像
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-6-9 20:27:52 | 显示全部楼层
C#.net core加密解密RSA私钥加密、签名、验签工具类Java转.net、php加密解密实例,未测试。



RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。

RSA可以用于加密解密和签名验证。


另一个文件

使用示例:

php私钥加密公钥解密工具类参考代码:

原文:http://blog.baibaota.com/2562.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-6-2 04:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表