独立于私钥应该加密的事实(这与这个问题无关):我使用以下代码生成 RSA 密钥对:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair keyPair = kpg.generateKeyPair();
privKey = (RSAPrivateKey)keyPair.getPrivate();
pubKey = (RSAPublicKey)keyPair.getPublic();
byte[] data=privKey.getEncoded();
...
byte[] data=pupKey.getEncoded();
数据的内容是二进制的,而不是 Base 64 编码或类似的东西。
当我将数据内容存储在某处并希望稍后加载它们时 - 我该怎么做? RSAPrivateKey 和 RSAPublicKey 没有任何构造函数/加载程序或类似的东西......
很混乱,但还是要走from a java Key http://docs.oracle.com/javase/6/docs/api/java/security/Key.html to存储字节使用获取编码() http://docs.oracle.com/javase/6/docs/api/java/security/Key.html#getEncoded%28%29方法。要想走另一条路,from bytes to a Key http://docs.oracle.com/javase/6/docs/api/java/security/Key.html, use a 密钥工厂 http://docs.oracle.com/javase/6/docs/api/java/security/KeyFactory.html.
如果你的密钥是私钥,那么就去from字节返回to私钥创建一个PKCS8EncodedKeySpec http://docs.oracle.com/javase/6/docs/api/java/security/spec/PKCS8EncodedKeySpec.html. To go from bytes toRSA 公钥使用X509EncodedKeySpec http://docs.oracle.com/javase/6/docs/api/java/security/spec/X509EncodedKeySpec.html. These KeySpecs http://docs.oracle.com/javase/6/docs/api/java/security/spec/KeySpec.html然后提供给适当的实例密钥工厂 http://docs.oracle.com/javase/6/docs/api/java/security/KeyFactory.html恢复公钥 http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html and 私钥 http://docs.oracle.com/javase/6/docs/api/java/security/PrivateKey.html对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)