xml格式化(HTML代码格式化)
.NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接
众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,Java一般使用pkcs1格式。我们在开发过程中很可能遇到需要与其他语言开发的api进行对接,如果遇到RSA加密解密,我们肯定需要保证key是相同的,才能保证数据的正确处理,我们肯定需要对密钥进行转换,下面我将我自己的使用经验分享给大家。
pkcs1和pkcs8是在开源项目bouncycastle
RSAUtil 项目
RSAUtil 项目是.NET Core下RSA算法使用帮助工具,支持使用RSA算法对数据进行加密,解密,签名和验证签名,支持xml,pkcs1,pkcs8三种密钥格式,支持这三种格式的密钥相互转换。最后还支持pem格式化。
使用生成密钥
使用“RsaKeyGenerator”类。返回的结果是包含两个元素的字符串列表,元素1是私钥,元素2是公钥。
格式:XML
varprivateKey=keyList [0];
varpublicKey=keyList [1];
varprivateKey=keyList [0];
varpublicKey=keyList [1];
varprivateKey=keyList [0];
varpublicKey=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()
其他说明
本项目已开源,如果对您有帮助,欢迎来个star:
为了方便使用已经上传Nuget:
直接用命令安装:
Install-PackageXC.RSAUtil原始地址: href=”http:// “ target=”_blank” title=”” style=”white-space: nowrap;”>
还没有评论,来说两句吧...