把Java生成的RSA公钥、私钥转换成.NET使用的XML格式

 1  private static String getRSAPrivateKeyAsNetFormat(byte[] encodedPrivkey) {
 2         try {
 3             StringBuffer buff = new StringBuffer(1024);
 4
 5             PKCS8EncodedKeySpec pvkKeySpec = new PKCS8EncodedKeySpec(
 6                     encodedPrivkey);
 7             KeyFactory keyFactory = KeyFactory.getInstance("RSA");
 8             RSAPrivateCrtKey pvkKey = (RSAPrivateCrtKey) keyFactory
 9                     .generatePrivate(pvkKeySpec);
10
11             buff.append("<RSAKeyValue>");
12             buff.append("<Modulus>"
13                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getModulus().toByteArray()))
14                     + "</Modulus>");
15
16             buff.append("<Exponent>"
17                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPublicExponent()
18                     .toByteArray())) + "</Exponent>");
19
20             buff.append("<P>"
21                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeP().toByteArray()))
22                     + "</P>");
23
24             buff.append("<Q>"
25                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeQ().toByteArray()))
26                     + "</Q>");
27
28             buff.append("<DP>"
29                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeExponentP()
30                     .toByteArray())) + "</DP>");
31
32             buff.append("<DQ>"
33                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeExponentQ()
34                     .toByteArray())) + "</DQ>");
35
36             buff.append("<InverseQ>"
37                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getCrtCoefficient()
38                     .toByteArray())) + "</InverseQ>");
39
40             buff.append("<D>"
41                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrivateExponent()
42                     .toByteArray())) + "</D>");
43             buff.append("</RSAKeyValue>");
44
45             return buff.toString().replaceAll("[ \t\n\r]", "");
46         } catch (Exception e) {
47             System.err.println(e);
48             return null;
49         }
50     }
51
52     private static String getRSAPublicKeyAsNetFormat(byte[] encodedPublicKey) {
53         try {
54
55             KeyFactory keyFactory = KeyFactory.getInstance("RSA");
56             RSAPublicKey pukKey = (RSAPublicKey) keyFactory.generatePublic(new X509EncodedKeySpec(encodedPublicKey));
57
58             StringBuffer buff = new StringBuffer(1024);
59             buff.append("<RSAKeyValue>");
60             buff.append("<Modulus>"
61                     + CodeUtils.base64Encode(removeMSZero(pukKey.getModulus().toByteArray()))
62                     + "</Modulus>");
63             buff.append("<Exponent>"
64                     + CodeUtils.base64Encode(removeMSZero(pukKey.getPublicExponent().toByteArray())) + "</Exponent>");
65             buff.append("</RSAKeyValue>");
66             return buff.toString().replaceAll("[ \t\n\r]", "");
67         } catch (Exception e) {
68             System.err.println(e);
69             return null;
70         }
71     }
时间: 2024-11-08 21:06:06

把Java生成的RSA公钥、私钥转换成.NET使用的XML格式的相关文章

一个java的DES加解密类转换成C#

原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.Pattern; //import java.util.Hashtable; import javax.crypto.*; import javax.crypto.spec.*; import sun.misc.*; /** * des加密解密 */ pu

C#将字典转换成name=value这种字符串格式

/// <summary> /// 将字典转换成name=value这种字符串格式 /// </summary> /// <param name="dic"></param> /// <returns></returns> public static string DictionaryToStr(IDictionary<string,string> dic) { //使用排序字典 dic = new S

带毫秒的字符转换成时间(DateTime)格式的通用方法

好久没更新日志了,添加个方法吧,本身没有什么技术可言,为了能方便大家,我稍微整理一下咯~ 带毫秒的字符转换成时间(DateTime)格式通用方法,如下:(支持格式:2014-10-10 10:10:10,666 或 2014-10-10 10:10:10 666) /// <summary> /// 带毫秒的字符转换成时间(DateTime)格式 /// 可处理格式:[2014-10-10 10:10:10,666 或 2014-10-10 10:10:10 666] /// </sum

怎么才能将AutoCAD 2018的图纸转换成高清的JPG格式?

怎么才能将AutoCAD 2018的图纸转换成高清的JPG格式?为了方便将CAD图纸文件进行打开查看或是方便将其进行传输进行随时随地的进行查看都会需要进行的操作就是将CAD图纸文件进行格式间的转换,将其进行转换成图片格式就是常见的,具体应该怎么样进行操作,下面小编就要来教大家的就是怎么才能将AutoCAD 2018的图纸转换成高清的JPG格式的全部操作步骤,希望能够帮助到你们,望采纳! 步骤一:首先需要打开电脑上面的浏览器然后搜索迅捷CAD进入迅捷CAD官网在官网上查找到一款迅捷CAD转换器的软

将CAD图纸转换成高版本的DWG格式应该怎么进行?

将CAD图纸转换成高版本的DWG格式应该怎么进行?CAD图纸文件有的时候会因为图纸的版本问题而无法将其进行打开查看的操作,图纸文件版本过低或是过高都无法将其进行打开查看,具体应该进行的操作就是将其进行版本间的转换,将CAD图纸文件进行向高版本转换应该怎么样进行,下面小编就要来教大家的就是将CAD图纸转换成高版本的DWG格式应该怎么进行的全部操作步骤,希望能够帮助到你们,望采纳! 步骤一:首先要打开电脑,打开浏览器在搜索框中输入"迅捷CAD转换器"去到迅捷CAD官网上然后点击下载然后进行

将模糊的CAD图纸转换成高清彩色SVG格式如何进行?

将模糊的CAD图纸转换成高清彩色SVG格式如何进行?CAD图纸文件是需要使用到专门的看图软件才能够将其进行打开查看的,一般为了方便将其进行传输等操作都会需要进行的操作就是将其进行的是格式间的转换操作,具体应该怎么样进行,将CAD图纸转换成SVG格式,接下来小编就要来教大家的就是将模糊的CAD图纸转换成高清彩色SVG格式如何进行的全部操作步骤,希望能够帮助到你们,望采纳! 步骤一:首先需要进行启动的是你们电脑上面的迅捷CAD转换器软件,电脑上面没有这款软件的可以去到迅捷CAD官网上面进行下载安装!

怎么在线直接将多张CAD图纸转换成高质量黑白PNG格式?

怎么在线直接将多张CAD图纸转换成高质量黑白PNG格式?CAD相关的工作中会需要经常进行操作的就是将其进行格式间的转换,将CAD图纸文件进行转换成常见的图片中的PNG格式就是其中的一种,一般我们进行此项曹组的时候都是借助电脑上面的软件来进行,接下来小编就要来教大家的就是怎么在线直接将多张CAD图纸转换成高质量黑白PNG格式的全部操作步骤,希望能够帮助到你们的操作,望采纳! 步骤一:首先需要进行打开的是你们电脑上面的任意一款浏览器进入在搜索框中输入迅捷CAD,然后点击进行搜索,在下方的百度推荐中点

怎样将高版本CAD图纸转换成低版本的DWG格式?

怎样将高版本CAD图纸转换成低版本的DWG格式?CAD图纸文件在绘制完成之后打开进行查看时候可能会出现的情况就是图纸版本问题而无法将其进行打开,这个时候就需要进行的操作就是将其进行版本间的转换操作,具体应该怎么样进行,使用CAD版本转换器的操作步骤是什么,接下来小编就要来教大家的就是怎样将高版本CAD图纸转换成低版本的DWG格式的全部操作步骤! 步骤一:首先启动电脑桌面上的CAD转换器软件,电脑上面没有这款软件的就需要去到迅捷CAD官网上面进行下载这款迅捷CAD转换器软件进行操作使用! 步骤二:

怎么将高版本DWG格式图纸转换成低版本的DXF格式?

怎么将高版本DWG格式图纸转换成低版本的DXF格式?DWG与DXF格式是CAD图纸文件的两种基本格式,一般绘制完成的CAD图纸文件都是这两种基本格式,CAD图纸文件也会有高低版本之分,有的时候会因为其版本问题而无法将其进行打开查看,所以这个时候需要进行的操作就是将其进行版本间的转换操作,下面小编就要来教大家的就是怎么将高版本DWG格式图纸转换成低版本的DXF格式的全部操作步骤,希望能够帮助到你们! 步骤一:首先要打开电脑上面的任意一款浏览器在搜索框中输入"迅捷CAD转换器"去到迅捷CA