我使用RSA算法来生成公钥和私钥
final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(ALGORITHM);
keyGen.initialize(1024);
final KeyPair key = keyGen.generateKeyPair();
final PrivateKey privateKey=key.getPrivate();
final PublicKey publickey=key.getPublic();
然后使用Base64编码器对这些密钥进行编码,并将其保存到数据库中。
如何将这个编码的字符串转换成java中的私钥和公钥类型,就是解密文件。当使用Base64Decoder解码这个字符串时,会得到一个字节数组。如何将此Byte数组转换为公钥或私钥类型?
发布于 2014-02-28 03:00:44
如果键上有一个表示getEncoded()输出的byte[],则可以使用KeyFactory将其转换回PublicKey对象或PrivateKey对象。
byte[] privateKeyBytes;
byte[] publicKeyBytes;
KeyFactory kf = KeyFactory.getInstance("RSA"); // or "EC" or whatever
PrivateKey privateKey = kf.generatePrivate(new PKCS8EncodedKeySpec(privateKeyBytes));
PublicKey publicKey = kf.generatePublic(new X509EncodedKeySpec(publicKeyBytes));
https://stackoverflow.com/questions/19353748
复制相似问题