JAVA_RSA密钥生成
2015-07-31 17:51
489 查看
在网上找了下RSA的密钥的创建,结果全是用java序列化PublicKey和PrivateKey来保存,就自己写了个RSA公钥和私钥的创建,及进行Base64编码后保存。
这里用到了 bcprov-jdk16-1.4.5.jar ,可以在 http://www.bouncycastle.org/ 官方主页上下载.
这里用到了 bcprov-jdk16-1.4.5.jar ,可以在 http://www.bouncycastle.org/ 官方主页上下载.
public static void createKeyPairs() throws Exception { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); // create the keys KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "BC"); generator.initialize(512, new SecureRandom()); KeyPair pair = generator.generateKeyPair(); PublicKey pubKey = pair.getPublic(); PrivateKey privKey = pair.getPrivate(); byte[] pk = pubKey.getEncoded(); byte[] privk = privKey.getEncoded(); String strpk = new String(Base64.encodeBase64(pk)); String strprivk = new String(Base64.encodeBase64(privk)); System.out.println("公钥:" + Arrays.toString(pk)); System.out.println("私钥:" + Arrays.toString(privk)); System.out.println("公钥Base64编码:" + strpk); System.out.println("私钥Base64编码:" + strprivk); X509EncodedKeySpec pubX509 = new X509EncodedKeySpec(Base64.decodeBase64(strpk.getBytes())); PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decodeBase64(strprivk.getBytes())); KeyFactory keyf = KeyFactory.getInstance("RSA", "BC"); PublicKey pubkey2 = keyf.generatePublic(pubX509); PrivateKey privkey2 = keyf.generatePrivate(priPKCS8); System.out.println(pubKey.equals(pubkey2)); System.out.println(privKey.equals(privkey2)); }
相关文章推荐
- java缓存(3、Oscache和Ehcache)
- java+搜索引擎
- spring mvc @Autowired
- struts2 基于xml 配置文件的输入验证
- spring使用aop时需要设置proxy-target-class="true" 否则无法依赖注入
- 关于Override在JDK1.5和JDK1.6上子类实现接口中方法使用@Override注解编译错误.
- springMVC --配置详细与注解说明
- 【SSH快速进阶】——struts2的模型驱动—ModelDriven
- java中二叉树的创建以及几个常用的函数
- Java CAS理解
- java正则掉坑实录
- java通过Ip地址获取地理位置
- Java中声明常量为什么用static修饰
- Flex数字类型和Java数字类型的比较
- Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印
- MyEclipse10 离线图文安装SVN插件教程
- Java 泛型
- spring mvc controller 传参
- Java集合类总结
- java把文件夹(目录)子文件夹打成zip文件