我想实现 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/