我试图读取秘密密钥。 我学到了为了实现它必须从我的完整证书中提取私钥的pfx格式。 我已经尝试使用以下open ssl命令将pfx转换为pem,然后再转换为pk8,但在尝试使用java读取密钥时会显示无效的密钥格式
将pfx转换为pem
OpenSSL pkcs12-Inc :\documents\Xbox-token\conversion\Xbox
token-full cert.pfx-no certs-outc :\documents\Xbox-token\conversion\Xbox key.PEM
删除密码保护
OpenSSL RSA-Inc :\documents\Xbox-token\conversion\Xbox key.PEM-outc :\documents\Xbox-token \
将pem转换为pk8
OpenSSL pkcs8- to pk8-Inc :\documents\Xbox-token\conversion\Xbox key.PEM-outc 3360\documents\Xbox-box
在java代码中
byte [ ]已编码私有密钥=null;
fileprivatekeyfile=new file (c :/documents/Xbox-token/conversion/Xbox PRV.pk8 );
fileinputstreaminputstreamprivatekey=null;
try {
inputstream专用密钥=new file inputstream (专用密钥文件);
编码私有密钥=new byte [ (int )私有密钥. length ) ];
inputstream私有密钥. read (已编码私有密钥;
inputStreamPrivateKey.close (;
}catch(filenotfoundexceptione ) {
//todo auto-generated catch块
e .打印堆栈跟踪(;
}catch(ioexceptione ) {
//todo auto-generated catch块
e .打印堆栈跟踪(;
}
//创建the private key。
PC S8 encodedkeyspecprivatekeyspec=new pkcs8 encodedkeyspec (编码专用密钥);
编码私有密钥(system.out.println );
system.out.println (私有密钥spec;
RSA专用密钥专用密钥=null;
try {
私有密钥=(RSA私有密钥)密钥factory.getinstance (RSA ) ).generateprivate )私有密钥spec;
} catch (invalidkeyspecexceptione ) )
//todo auto-generated catch块
e .打印堆栈跟踪(;
} catch (nosuchalgorithmexceptione ) )
//todo auto-generated catch块
e .打印堆栈跟踪(;
}
Java.security.spec.invalidkeyspecexception:Java.security.invalidkeyexception :收到无效的密钥格式
每个人都可以帮助