java - 用Java实现RSA算法

标签 java algorithm key rsa

我想实现 RSA algorithm加密图像 (byte[])。为了生成我的两个 key ,我使用了这段代码:

KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
keygen.initialize(512);
keyPair = keygen.generateKeyPair();

生成公钥和私钥后,我想将它们显示给用户,以便他可以分发公钥并使用私钥进行解码。我怎样才能取回这些 key ?

使用 keygen.getPrivateKey()keygen.getPublicKey() 为我提供 RSA 算法的所有信息,而不仅仅是我需要的 key 。

谢谢

最佳答案

通过相关的 KeySpec 类,您可以调用 getModulus() 和 getPublicExponent()/getPrivateExponent() 方法来提取关键组件:

KeyFactory fact = KeyFactory.getInstance("RSA");
RSAPublicKeySpec pub = fact.getKeySpec(kp.getPublic(),
  RSAPublicKeySpec.class);
RSAPrivateKeySpec priv = fact.getKeySpec(kp.getPrivate(),
  RSAPrivateKeySpec.class);

saveToFile("public.key", pub.getModulus(),
  pub.getPublicExponent());
saveToFile("private.key", priv.getModulus(),
  priv.getPrivateExponent());

如果它有用,我不久前写了几篇文章,处理 RSA encryption in Java 的一些细节。 (以及一般基于 Java 的密码学。

关于java - 用Java实现RSA算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708586/

相关文章:

java - mapreduce 类中的奇怪错误

java - JSONObject.getJSONArray() 无法识别数组

java - 将 JPanel 与 WindowBuilder 重叠用于 eclipse

java - JRadioButton 正在选择最后一个

algorithm - 蛮力 BFS 与 Dijkstra 最短路径算法的运行时间分析

algorithm - 为什么这个二叉搜索树不能是红黑树?

python - 如何使用另一个列表作为键的引用来更改 Python 3.5 字典中键的顺序?

algorithm - 如何根据一定的标准找到多条数据的最佳组合?

node.js - Node ,redis。检查 key 是否存在,如果不存在则创建新的

function - 如何在 Emacs 中将 F1-F12 键绑定(bind)为键盘宏?