在java中从文件中获取私钥

在java中从文件中获取私钥,java,cryptography,private-key,Java,Cryptography,Private Key,我有一个扩展名为“key”的私钥文件。我知道它是由“Admin PKI”程序生成的。我必须将它作为java中PrivateKey类型的对象来读取,才能使用它生成数字签名。我尝试在文本编辑器中打开它,但没有诸如“begin private key”和“end private key”之类的页眉和页脚。我如何知道生成私钥使用的算法?我可以在不知道算法的情况下执行此操作吗?下面的代码加载一个文件key.pem,您将需要bouncycastle库() 编译并运行 javac -cp bcprov-jdk

我有一个扩展名为“key”的私钥文件。我知道它是由“Admin PKI”程序生成的。我必须将它作为java中PrivateKey类型的对象来读取,才能使用它生成数字签名。我尝试在文本编辑器中打开它,但没有诸如“begin private key”和“end private key”之类的页眉和页脚。我如何知道生成私钥使用的算法?我可以在不知道算法的情况下执行此操作吗?

下面的代码加载一个文件
key.pem
,您将需要bouncycastle库()

编译并运行

javac -cp bcprov-jdk16-146.jar:. LoadKey.java
java -cp bcprov-jdk16-146.jar:. -ea LoadKey

您也有证书文件吗?是的,它是具有“pem”扩展名的文件(X509证书)。什么是“管理PKI”程序?谢谢,但我的.pem文件不包含私钥。(我必须仅使用SignalCOMProvider读取它…)您是否尝试使用其实际扩展名?更改代码中的名称,然后重试。。它可能会自动检测到此错误。。。线程“main”java.lang.ClassCastException中的异常:org.bouncycastle.jce.provider.X509CertificateObject无法强制转换为java.security.KeyPair当我使用.key扩展名文件尝试此代码时,函数readKeyPair返回null…从错误中可以看出,.key文件似乎是X509CertificateObject,您确定此.key文件是密钥吗?
javac -cp bcprov-jdk16-146.jar:. LoadKey.java
java -cp bcprov-jdk16-146.jar:. -ea LoadKey