java pkcs1转pkcs8_.NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接...
众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式。我们在开发过程中很可能遇到需要与其他语言开发的api进行对接,如果遇到RSA加密解密,我们肯定需要保证key是相同的,才能保证数据的正确处理,我们肯定需要对密钥进行转换,下面我将我自己的使用经验分享给大家。
pkcs1和pkcs8的操作借助了开源项目bouncycastle
RSAUtil 项目
RSAUtil 项目是.NET Core下RSA算法使用帮助工具,支持使用RSA算法对数据进行加密,解密,签名和验证签名,支持xml,pkcs1,pkcs8三种密钥格式,支持这三种格式的密钥相互转换。最后还支持pem格式化。
使用
生成密钥
使用“RsaKeyGenerator”类。返回的结果是一个有两个元素的字符串的列表,元素1是私钥,元素2是公钥。
格式:XML
var keyList = RsaKeyGenerator.XmlKey(2048);
var privateKey = keyList [0];
var publicKey = keyList [1];
格式:Pkcs1
var keyList = RsaKeyGenerator.Pkcs1Key(2048);
var privateKey = keyList [0];
var publicKey = keyList [1];
格式:Pkcs8
var keyList = RsaKeyGenerator.Pkcs8Key(2048);
var privateKey = keyList [0];
var publicKey = keyList [1];
RSA密钥转换
使用“RsaKeyConvert”类。它支持这三种格式的密钥转换,即:xml,pkcs1,pkcs8。
XML-> Pkcs1:
私钥:RsaKeyConvert.PrivateKeyXmlToPkcs1()
公钥:RsaKeyConvert.PublicKeyXmlToPem()
XML-> Pkcs8:
私钥:RsaKeyConvert.PrivateKeyXmlToPkcs8()
公钥:RsaKeyConvert.PublicKeyXmlToPem()
Pkcs1-> XML:
私钥:RsaKeyConvert.PrivateKeyPkcs1ToXml()
公钥:RsaKeyConvert.PublicKeyPemToXml()
Pkcs1-> Pkcs8:
私钥:RsaKeyConvert.PrivateKeyPkcs1ToPkcs8()
公钥:不需要转换
Pkcs8-> XML:
私钥:RsaKeyConvert.PrivateKeyPkcs8ToXml()
公钥:RsaKeyConvert.PublicKeyPemToXml()
Pkcs8-> Pkcs1:
私钥:RsaKeyConvert.PrivateKeyPkcs8ToPkcs1()
公钥:不需要转换
加密,解密,签名和验证签名
XML,Pkcs1,Pkcs8分别对应类:RsaXmlUtil,RsaPkcs1Util,RsaPkcs8Util。它们继承自抽象类RSAUtilBase
加密:RSAUtilBase.Encrypt()
解密:RSAUtilBase.Decrypt()
Sign:RSAUtilBase.SignData()
验证:RSAUtilBase.VerifyData()
PEM格式化
使用类“RsaPemFormatHelper”。
格式化Pkcs1格式私钥:RsaPemFormatHelper.Pkcs1PrivateKeyFormat()
删除Pkcs1格式私钥格式:RsaPemFormatHelper.Pkcs1PrivateKeyFormatRemove()
格式化Pkcs8格式私钥:RsaPemFormatHelper.Pkcs8PrivateKeyFormat()
删除Pkcs8格式的私钥格式:RsaPemFormatHelper.Pkcs8PrivateKeyFormatRemove()
其他说明
直接使用命令安装:
Install-Package XC.RSAUtil
java pkcs1转pkcs8_.NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接...相关推荐
- .NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接
众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式.我们在开发过程中很可能遇到需要与其他语言开发的a ...
- java+基于dom4j工具类_基于dom4j的xml映射实体的工具类(java)
基于dom4j的xml映射实体的工具类(java) 工具是基于dom4j,使用反射使实体属性与xml的标签关联,目前兼容List,Map后续更新兼容. 历史更新: 发布-2019-6-22 增加注解@ ...
- java script 月日年转年月日_js的如何进行日期格式转换成年月日
可以把它写成一个函数: //date:时间, //type:格式数组 - - - ,年月日,/ / / function time(date,type){ if(typeof d == "o ...
- java对于微信平台语音接收以及处理,语音下载以及arm格式转换MP3
2019年3月11号, 以下内容都是2015年写的东西,可能已经不能用 weixin-java-tools,现已更名Wxjava,一直使用这个,很方便,建议大家使用,如果有空到时候写一篇关于Wxjav ...
- ras私钥c#转java_C#和JAVA的RSA密钥、公钥转换
C#的秘钥跟JAVA的密钥区别 RSA对于程序本身是没有区别的,其格式都是相同的.对于不同的程序来说,存储使用的语法(包装的类)会有所不同. RSA语法和语法标准有很多,大的类型大概分为ASN.1.P ...
- 关于java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup问题的解决方法
在初学spring整合jdbc,mybatis,test时,通过注解开发方式获取spring容器时执行到如下语句时报错: 错误详细为: Exception in thread "main&q ...
- org.apache.jasper.JasperException: The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be r
项目启动报错 1.报错内容: 报错先是这样 按照百度的方法添加了c.tld和对应的web.xml文件 Sep 13, 2022 11:25:35 AM org.apache.catalina.core ...
- java定义时间格式大全_Java时间格式转换大全
package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...
- java格式_java时间格式转换大全
Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @ ...
最新文章
- 2018-4-2 幂律分布函数
- 安装MySQL之后修改编码方式
- sublimeText3安装package control和禁止弹出更新下载弹窗
- vector can通信源码_汽车电子CAN网络dbc文件
- Xpath语法学习记录
- L-BFGS算法/Broyden族/BFGS算法/阻尼牛顿法的Python实现代码
- 【Java】数值计算排雷指南
- python3语音控制电脑_python语音控制电脑_uusee全屏
- p46_IPv4地址
- Python数据可视化-matplotlib and seaborn
- 20个最漂亮的基于WordPress的企业网站
- 497.非重叠矩形中的随机点
- win10 多开 vpn
- java异常处理拦截器
- 黑客技术之初学者编程入门
- 直播盒子接口怎么采集,以下方法。
- Android 源码之Recovery升级的过程和问题分析
- JAVA8安装与配置
- java字段太多会栈溢出_Java内存溢出与栈溢出
- 怎么将flac转换成mp3
热门文章
- dx使用出现的错误总结
- R 包 optparse 之命令行参数传递
- 在线作图|在线做随机森林分析
- QIIME 2教程. 31名词Glossary(2020.11)
- NC:植物与根际微生物之间的通路被破解,通过合成生物学利用微生物固氮!...
- 求求你使用Tab键好吗
- Microbiome综述|植物内部微生物的相互作用
- 中国科学7月微生物组专刊:赵立平、秦楠、东秀珠领衔
- Annu. Rev. Genet:植物微生物组——系统性见解与展望
- R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战