我正在尝试用Java读取RSA公钥和私钥文件。
我的RSA公钥和私钥是使用PuttyGen生成的。(SSH-2 RSA,1024位)
我用来读取文件的代码是:
//public key
pubkeyBytes = getBytesFromFile(new File(pubKeyfileName));
KeySpec pubSpec = new X509EncodedKeySpec(pubkeyBytes);
RSAPublicKey pubKey =(RSAPublicKey) rsakeyFactory.generatePublic(pubSpec);
//private key
privkeyBytes = getBytesFromFile(new File(privKeyfileName));
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(privkeyBytes);
PrivateKey privKey = rsakeyFactory.generatePrivate(privSpec);它抛出:
java.security.InvalidKeyException: invalid key format
at sun.security.x509.X509Key.decode(Unknown Source)发布于 2012-10-01 01:02:13
Putty使用自己的密钥格式。您需要将油灰密钥导出为OpenSSH格式-请参阅How to convert SSH keypairs generated using PuttyGen(Windows) into key-pairs used by ssh-agent and KeyChain(Linux)。
然后,您需要将OpenSSH密钥转换为pkcs8格式-请参阅How to Load RSA Private Key From File。对于这一点,openssh的Cygwin版本可以很好地工作;不需要找到Unix系统来运行openssh。
https://stackoverflow.com/questions/12663084
复制相似问题