.net Core 下使用 X509Certificate2 给报文加签
起因
项目开发中途出现需求需要对接其他公司接口,使用证书进行认证传输,之前在.Net下搞过但是都是对方给我证书
这次需要我生成公钥/私钥,公钥给他这样操作。
生成私钥/公钥(这里是RSA算法,长度规定是2048)
我使用的是jdk-11.0.2
//生成私钥
//此行命令解释为:将使用RSA算法生成2048位的公钥/私钥对及整数,密钥长度为2048位,SHA256withRSA使用的算法, 证书有效期为385天。使用的密钥库为mykeystore1文件,别名为privatekey(后面可以直接用这个别名来代表mykeystore1文件)。
keytool -genkey -alias privatekey -keyalg RSA -keysize -sigalg SHA256withRSA -keystore mykeystore1 -validity //生成证书
keytool -export -alias privatekey -keystore mykeystore1 -file mykeystore1.cer //生成公钥
keytool -import -alias pulbiccert -file mykeystore1.cer -keystore publicmykeystore1 -storepass
代码部分
//调用证书
X509Certificate2 privateCert = new X509Certificate2(Path.Combine(System.AppContext.BaseDirectory, "mykeystore1"), "", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
//获取私钥的Key
#if NET452
RSACryptoServiceProvider privateKey = (RSACryptoServiceProvider)privateCert.PrivateKey;
RSACryptoServiceProvider privateKey1 = new RSACryptoServiceProvider();
privateKey1.ImportParameters(privateKey.ExportParameters(true));
#else
var privateKey = privateCert.GetRSAPrivateKey().ExportParameters(true);
#endif
//这里的content是我需要签名的数据
byte[] rgb = Encoding.UTF8.GetBytes(content);
RSACryptoServiceProvider privateKey1 = new RSACryptoServiceProvider();
privateKey1.ImportParameters(privateKey);
//加密算法 和 生成秘钥的对应起来
var halg = new SHA256CryptoServiceProvider();
byte[] inArray = privateKey1.SignData(rgb, halg);
//签名后转Base64
string signature = Convert.ToBase64String(inArray);
.net Core 下使用 X509Certificate2 给报文加签的更多相关文章
- RSA加密解密及RSA加签验签
RSA安全性应用场景说明 在刚接触RSA的时候,会混淆RSA加密解密和RSA加签验签的概念.简单来说加密解密是公钥加密私钥解密,持有公钥(多人持有)可以对数据加密,但是只有持有私钥(一人持有)才可以解 ...
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
- .Net Core下如何管理配置文件
一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XX ...
- .Net Core下如何管理配置文件(转载)
原文地址:http://www.cnblogs.com/yaozhenfa/p/5408009.html 一.前言 根据该issues来看,System.Configuration在.net core ...
- 在ASP.Net Core下,Autofac实现自动注入
之前使用以来注入的时候,都是在xml配置对应的接口和实现类,经常会出现忘了写配置,导致注入不生效,会报错,而且项目中使用的是SPA的模式,ajax报错也不容易看出问题,经常会去排查日志找问题. 于是在 ...
- Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
本文目录 1. 前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...
- .net core下简单构建高可用服务集群
一说到集群服务相信对普通开发者来说肯定想到很复杂的事情,如zeekeeper ,反向代理服务网关等一系列的搭建和配置等等:总得来说需要有一定经验和规划的团队才能应用起来.在这文章里你能看到在.net ...
- .net core下使用FastHttpApi构建web聊天室
一般在dotnet core下构建使用web服务应用都使用asp.net core,但通过FastHttpApi组建也可以方便地构建web服务应用,在FastHttpApi功能的支持下构建多人聊天室是 ...
- BDD实战篇 - 在.NET Core下安装Specflow
这是<如何用ABP框架快速完成项目 >系列中的一篇文章. BDD很赞!比TDD先进很多,能够大大提高编码效率. 让我们动手起来吧!先在.NET Core下安装Specflow! 官网教程在 ...
随机推荐
- final总结
final 1.类 不含任何子类,有父类(太监类):其中方法不能覆盖重写. 2.方法 最终方法,不能被覆盖重写. 3.局部变量 赋值后不能改变,只能赋一次值. 4.成员变量 <1>由于成员 ...
- java排序方式对比
尽量使用使用Comparator进行排序, 在java中,要想给数据进行排序,有两种事项方式, 一种为实现Comparable接口, 一种是实现Comparator接口, public interfa ...
- sed 指定行范围匹配
sed -n '5,10{/pattern/p}' file sed是一个非交互性性文本编辑器,它编辑文件或标准输入 导出的文件拷贝.标准输入可能是来自键盘.文件重定向.字符串或变量,或者是一个管道文 ...
- CentOS6.5安装Oracle11g
安装前必读: 1. 安装Oracle的虚拟机需要固定IP. 2. 注意安装过程中root用户与oracle用户的切换(su root/su oracle) 3. 环境变量 ...
- 第七章 vuex专题
一.Vuex安装 一般在创建项目是会选择 Vuex,如果没有选择: cnpm install vuex --save 使用: import Vuex from "vuex"; V ...
- Python os.dup() 方法
概述 os.dup() 方法用于复制文件描述符 fd.高佣联盟 www.cgewang.com 语法 dup()方法语法格式如下: os.dup(fd); 参数 fd -- 文件描述符 返回值 返回复 ...
- fiddler本地调试
参考:https://blog.csdn.net/letasian/article/details/75021656 有关fiddler基础用法的介绍详见我的上一篇博客:http://www.cnbl ...
- python数据可视化编程实战PDF高清电子书
点击获取提取码:3l5m 内容简介 <Python数据可视化编程实战>是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法创建美观的数 ...
- LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci 题解
题目传送门 如果之前推过斐波那契数列前缀和就更好做(所以题目中给出了). 斐波那契数列前缀和题目链接 先来推一下斐波那契数列前缀和: \[\sum\limits_{i=1}^nf(i) \] 其中 \ ...
- Spring Security和Swagger2集成报错
出现问题的项目算是一个新项目,但基本的脚手架代码是从另一个项目里迁过来的,原项目并没有报错,只有新项目才报异常.看报错内容,判断发生冲突的主要是spring-boot-starter-security ...