小编典典

注意:此代码仅用于演示目的。将私钥存储在磁盘上时,必须对其进行加密。不要按原样使用它。

您可以执行以下操作:

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");

kpg.initialize(2048);

KeyPair kp = kpg.genKeyPair();

KeyFactory fact = KeyFactory.getInstance("RSA");

RSAPublicKeySpec pub = fact.getKeySpec(kp.getPublic(),

RSAPublicKeySpec.class);

saveToFile(PUBLIC_KEY_FILE,

pub.getModulus(), pub.getPublicExponent());

RSAPrivateKeySpec priv = fact.getKeySpec(kp.getPrivate(),

RSAPrivateKeySpec.class);

saveToFile(PRIVATE_KEY_FILE,

priv.getModulus(), priv.getPrivateExponent());

保存功能:

private static void saveToFile(String fileName,

BigInteger mod, BigInteger exp)

throws SomeException {

ObjectOutputStream oout = new ObjectOutputStream(

new BufferedOutputStream(new FileOutputStream(fileName)));

try {

oout.writeObject(mod);

oout.writeObject(exp);

} catch (Exception e) {

throw new SomeException(e);

} finally {

oout.close();

}

}

并以相同的方式读回:

private static PublicKey readPublicKey() throws SomeException {

InputStream in = new FileInputStream(PUBLIC_KEY_FILE);

ObjectInputStream oin =

new ObjectInputStream(new BufferedInputStream(in));

try {

BigInteger m = (BigInteger) oin.readObject();

BigInteger e = (BigInteger) oin.readObject();

RSAPublicKeySpec keySpec = new RSAPublicKeySpec(m, e);

KeyFactory fact = KeyFactory.getInstance("RSA");

PublicKey pubKey = fact.generatePublic(keySpec);

return pubKey;

} catch (Exception e) {

throw new SomeException(e);

} finally {

oin.close();

}

}

读取私钥相似。

2020-09-11

java保存私钥_如何在Java中使用密钥库来存储私钥?相关推荐

  1. wordpress 数据库_如何在WordPress中创建视频库(逐步)

    wordpress 数据库 Recently, a user asked us how to create a video gallery in WordPress. WordPress makes ...

  2. java 正则表达式 开头_如何在Java中修复表达式的非法开头

    java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...

  3. java soap 头_如何在Java中添加Soap标头

    我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...

  4. java实现递归算法_如何在Java中实现二进制搜索算法而无需递归

    java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...

  5. java jcombobox长度_如何在JToolBar中设定JComboBox的大小?

    如何在JToolBar中设定JComboBox的大小? 我设计了一个JToolBar,并且在上边添加了一个JComboBox,可是我发现这个JComboBox长度无法控制,它将JToolBar上剩余空 ...

  6. java 全局数组_如何在Java中声明全局数组?

    我有一个程序在Java中乘以两个矩阵.我在全局错误声明中发现了一些错误. 这里是我的代码如何在Java中声明全局数组? import java.util.Scanner; /**WAP in Java ...

  7. java插入图片_如何在java窗体程序中添加图片

    打开eclipse,创建一个java工程项目,创建完后在src下新建一个类Window,由于要插入图片,所以还在工程目录下创建一个文件夹imgs,里面放了一张60*60的图片,创建后的工程目录和图片, ...

  8. java安卓计时器_如何在android中设置计时器

    通过java.util.Timer和java.util.TimerTask使用计时器的标准Java方法在Android中运行良好,但是你应该知道这个方法创建了一个新线程. 您可以考虑使用非常方便的Ha ...

  9. java cpu监控_如何在Java中监视计算机的CPU,内存和磁盘使用情况?

    问题 我想用Java监视以下系统信息: 当前CPU使用率**(百分比) 可用内存*(免费/总计) 可用磁盘空间(空闲/总计)*请注意,我的意思是整个系统可用的总内存,而不仅仅是JVM. 我正在寻找一种 ...

最新文章

  1. python中x y表示_Python中表达式x += y和x = x+y 的区别详解
  2. JavaScript 找出数组中重复的元素
  3. ajax得到session,Ajax如何使用Session
  4. 安装jdk配置环境、cmd命令行测试环境变量配置是否正确及运行java程序、安装IDEA编写代码测试
  5. charles抓app包教程_charles关于手机APP抓包
  6. vb.net mysql存储图片_怎么让VB.NET 上传图片到SQL 数据库只保存路径,图片保存到文件...
  7. 【机器学习】 - 激活函数与交叉熵Sigmoid, Softmax, binary_crossentropy, categorican_crossentropy区别
  8. 太阳系其实是被造出来的!来,用视觉聆听宇宙之音!
  9. Java 查找链表中的元素
  10. 值得电商美工借鉴的购物APP页面设计,让人无法自拔
  11. 扩展Kubernetes API
  12. arduino液位传感器_如何使用Arduino + VL53L0X来制作液位感应设备
  13. dedecms v5.7 图片集“图集内容”无法调用的解决办法
  14. 分享几款常用的MySQL管理工具
  15. 1048 习题4-4 三个整数求最大值
  16. Android图片轮播控件——Banner
  17. 海信电视买哪个型号好 2023海信电视系列机型选购推荐
  18. VSPD虚拟串口使用教程
  19. LVDS、FPD-Link/GMSL、MIPI的区别
  20. 通过css设置img的src

热门文章

  1. 小区物业费信息管理系统设计c++_律师,我没有签物业合同,可以不交物业费吗?...
  2. python polar contour_Python将2darray的最后一行和第二列添加到最后位置 - Polar Contour图...
  3. HttpServletRequest看这篇文章就够了
  4. 基数排序及其思想 C++代码实现及分析 恋上数据结构笔记
  5. 09 ORA系列:ORA-06553 PLS-306
  6. Hibernate hql 查询指定字段并获取结果集
  7. bootstrap怎么在一个页面渲染多个表格_推荐一个前端框架
  8. 12个python超强学习网站!加python书籍推荐!( 入门python自学推荐!建议收藏!)
  9. 《R语言实战》第4章
  10. POJ-4004:数字组合(用位移方法解组合数问题,Java版)