rsa 公钥 java-RSA 十六进制公钥获取publicKey java

问题描述

RSA 十六进制公钥获取publicKey java

我用如下代码(1)生成公钥得出其十六进制的字符串为:
//初始化keyPairGenerator
KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA");
//获取密钥对
KeyPair rsaKpg= kpg.generateKeyPair();
//获取公钥
RSAPublicKey rsaPubKey=(RSAPublicKey) rsaKpg.getPublic();
//十六进制公钥
String hexstring=ConvertUtil.asc2HexString(rsaPubKey.getEncoded());
System.out.println(hexstring);
得出的十六进制字符串为:
30819f300d06092a864886f70d010101050003818d00308189028181008d4890ab47abbc271bd913bf7493d5f2082c4135c421479a33afc9b9ce66ab8974534d48421c24045049d2ef24fded928b4ff678d41272ee0746b02b4bc2f6675e77dbafe63045be6843e14d5ffbe03d51cd945a1fcc93bb99d58a29b71f43d723d0b73f41ac85ed15c780f10186a270a05aa2abc73858933224d1152dc7b2730203010001

从十六进制字符串可以得出:
RSAPublicKey的系数为"8d4890ab47abbc271bd913bf7493d5f2082c4135c421479a33afc9b9ce66ab8974534d48421c24045049d2ef24fded928b4ff678d41272ee0746b02b4bc2f6675e77dbafe63045be6843e14d5ffbe03d51cd945a1fcc93bb99d58a29b71f43d723d0b73f41ac85ed15c780f10186a270a05aa2abc73858933224d1152dc7b273"
RSAPublicKey的指数为"10001"

然后我用系数和指数用如下代码(2)生成publicKey
String big1="8d4890ab47abbc271bd913bf7493d5f2082c4135c421479a33afc9b9ce66ab8974534d48421c24045049d2ef24fded928b4ff678d41272ee0746b02b4bc2f6675e77dbafe63045be6843e14d5ffbe03d51cd945a1fcc93bb99d58a29b71f43d723d0b73f41ac85ed15c780f10186a270a05aa2abc73858933224d1152dc7b273";
String big2="10001";
BigInteger b1=new BigInteger(big1,16);
BigInteger b2=new BigInteger(big2,16);
System.out.println(b1.toString());
System.out.println(b2.toString());
RSAPublicKeySpec rsaPubKS=new RSAPublicKeySpec(new BigInteger(big1,16),new BigInteger(big2,16));
KeyFactory kf=KeyFactory.getInstance("RSA");
RSAPublicKey pbk=(RSAPublicKey) kf.generatePublic(rsaPubKS);
//十六进制公钥
String string=ConvertUtil.asc2HexString(pbk.getEncoded());
System.out.println(string);
得出的十六进制公钥和上述的一致。

现在我有十六进制公钥为:"30818902818100EE317B333A2E72572C998D422210100F3BE6E9DE40FDE66D5ADB150F4608C9BBB5681F6AD7CFAD76202B2B161927C3A8E0B24DE590083A9BEE94CBE735AD50B4D4D7BD2F4F13877098F62DF7FBED96FC7243BBBCCD6155DBA5B751AE186A9409CDFDF161A6E1A9490DB235838378E7641029BD1DB7A46D4986F2A34D7D6A1C850203010001"
那么系数为:EE317B333A2E72572C998D422210100F3BE6E9DE40FDE66D5ADB150F4608C9BBB5681F6AD7CFAD76202B2B161927C3A8E0B24DE590083A9BEE94CBE735AD50B4D4D7BD2F4F13877098F62DF7FBED96FC7243BBBCCD6155DBA5B751AE186A9409CDFDF161A6E1A9490DB235838378E7641029BD1DB7A46D4986F2A34D7D6A1C85
指数为:10001
我想如上述方法一样去验证,但是发现用代码(2)生成十六进制公钥的时候为"30819f300d06092a864886f70d010101050003818d0030818902818100ee317b333a2e72572c998d422210100f3be6e9de40fde66d5adb150f4608c9bbb5681f6ad7cfad76202b2b161927c3a8e0b24de590083a9bee94cbe735ad50b4d4d7bd2f4f13877098f62df7fbed96fc7243bbbccd6155dba5b751ae186a9409cdfdf161a6e1a9490db235838378e7641029bd1db7a46d4986f2a34d7d6a1c850203010001"
这样得出de十六进制公钥就和原来的不一致,我想知道为什么,怎样可以做到一致?

解决方案

http://jingyan.baidu.com/article/6dad5075f33466a123e36ecb.html

解决方案二:

后来你是怎么处理的?我现在也需要如此,能分享下么,谢谢!

时间: 2024-09-11 02:29:19

rsa 公钥 java-RSA 十六进制公钥获取publicKey java的相关文章

Java从服务器上获取时间动态显示在jsp页面实现思路

Java只能获取一次,到页面的时间是静态的,不过通过js和Java的合作,巧妙地实现此功能   Java获取服务器时间,动态显示到jsp页面,大家都是到Java只能获取一次,到页面的时间是静态的,不过通过js和Java的合作,巧妙地实现此功能. 本 人是给电视做系统,客户要求页面能显示时间,因为电视浏览器获取的时间不对,没办法只能从服务器获取时间,但是问题来了,服务器的时间获取一次就成静态的 了,客户不满意,但也没办法,只能这样.不过这个问题在我这老惦记着,今天看到有个例子,说把Java获取服务

java操作中控考勤机 获取数据

问题描述 java操作中控考勤机 获取数据 现在公司要开发一个oa关联到公司的打卡机 只要实时的获取到数据就行了 然而之前没有 接触过类似的东西 网上找了一些资料也没有什么头绪希望 有搞过得大神帮助小弟一下 或者推荐几个资料站点看看也可以 解决方案 http://download.csdn.net/detail/lvyuan1234/9450402 解决方案二: C#获取考勤机中的数据

qq联系人-关于Java和QQ的,通过Java能获取QQ联系人列表吗?

问题描述 关于Java和QQ的,通过Java能获取QQ联系人列表吗? Java能获取QQ联系人列表吗?有什么办法能让Java获取QQ联系人列表的? 解决方案 http://www.oschina.net/code/snippet_659202_13122 解决方案二: QQ的安全防护措施比较多,不容易用java模拟登陆,如果腾讯能公开QQ的接口,授权给开发者的话,类似微信开发者接口那样的话就可以了. 所以,个人感觉不能. 解决方案三: 首先访问qq.mail.com 这个url分析html代码,

源代码-java如何实现自动获取外围设备IP地址

问题描述 java如何实现自动获取外围设备IP地址 本地计算机外围连接了5台设备,本人想通过本地计算机自动获取外围设备的ip地址,用java来实现,小女子求大神指点,求源代码,不胜感激 解决方案 通过对IP地址获取链接,进行Java链接.

[Java] 利用xpdf库获取pdf文件的指定范围文本内容

[Java] 利用xpdf库获取pdf文件的指定范围文本内容 编写者 日期 关键词 郑昀@ultrapower 2005-8-2 Java PDF xpdf   概述 读取PDF文件的某一部分文本内容,可以使用开源项目xpdf. 从Java中调用xpdf,我们参照了<Java抽取Word,PDF的四种武器>文章最后提到的办法. 总而言之,调用xpdf十分简单,下面讲一下xpdf的配置问题. 系统基础环境要求 下面是对运行xpdf软件服务的计算机的要求: l         您可以从以下位置下载

二进制-Java实现十六进制转八进制和十进制?

问题描述 Java实现十六进制转八进制和十进制? (1)问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示. 样例输入 FFFF 样例输出 65535 (2)问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度

基础-java 程序中如何获取所有类 或者带注解的类

问题描述 java 程序中如何获取所有类 或者带注解的类 最近写了一个使用注解的mvc的spring框架,这个框架的基础就是要读取到工程中的带有注解的类. 我的实现方法是将工程中的目录全部读取匹配得到.class后缀的所有路径的list,再用class.forname加载对应的类并且将注解读取判断是否为定义的注解.然后使用一个map装起来,在用到的时候拿出来.但是问题来了,我将项目打包jar之后程序是不能够读取到文件的.也就是说获取不到类的全路径如:cn.com.smq.Test 这样的字符串.

url 跳转 资源-java 如何通过Request获取的url定位到对应的资源调用相应的方法??求解答。。。

问题描述 java 如何通过Request获取的url定位到对应的资源调用相应的方法??求解答... 通过Request获取到了url,是通过什么机制跳转到相应的方法?通过这个url能对应到具体的资源吗 解决方案 看你的web.xml中的配置 <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>方法所在的包名.方法名</servlet-class></servlet

服务器-关于java网络编程中获取输入流中数据的问题?

问题描述 关于java网络编程中获取输入流中数据的问题? //服务器端接收消息的类.定制端口号为8888 serviceSocket = new ServerSocket(10000); //获取socket.这个方法是阻塞式的 socket = serviceSocket.accept(); inputStream = socket.getInputStream(); byte buf[] = new byte[1024]; int len = 0; len =inputStream.read