无法使用Java / Keytool签署挖掘信号
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法使用Java / Keytool签署挖掘信号,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1756字,纯文字阅读大概需要3分钟。
内容图文
![无法使用Java / Keytool签署挖掘信号](/upload/InfoBanner/zyjiaocheng/671/d0aa0f38884342d5b194eec855df45ae.jpg)
我基本上直接从keytool示例页面创建了一个证书:
keytool -genkey -dname “cn=Anything, ou=Anything, o=Anything, c=US” -alias business -keypass kpi135 -keystore C:\mykeystore -storepass ab987c -validity 1095
我正在尝试访问此证书,并使用私钥部分对文本的一部分进行数字签名以与第三方进行身份验证.以下是我尝试的代码:
//Add bouncyCastle as a provider
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("C:\\mykeystore"), "ab987c".toCharArray());
Signature sig = Signature.getInstance("MD5withRSA", "BC");
PrivateKey privateKey = (PrivateKey)keystore.getKey("business", "kpi135".toCharArray()); //Exception here
sig.initSign(privateKey);
sig.update("myUID__myNonce".getBytes());
byte[] digitalSignature = sig.sign();
System.out.println("Signature Formulated: " + digitalSignature);
我得到以下异常:
java.security.InvalidKeyException: Supplied key (sun.security.provider.DSAPrivat
eKey) is not a RSAPrivateKey instance
at org.bouncycastle.jce.provider.JDKDigestSignature.engineInitSign(Unkno
wn Source)
at java.security.Signature$Delegate.engineInitSign(Signature.java:1095)
at java.security.Signature.initSign(Signature.java:480)
at MainClass.<init>(MainClass.java:15)
at MainClass.main(MainClass.java:28)
我认为这是因为我以某种方式使用了错误的密钥类型创建了证书,但是我不确定通过挖掘keytool页面可以找到所需的证书.它确实提到您显然可以使用-keysig RSA和-sigalg RSA生成密钥,但是当我在创建证书时尝试使用这些标志时,会得到:
keytool error: java.security.NoSuchAlgorithmException: RSA Signature not availab
le
enter code here
解决方法:
实际上,您似乎可以在keygen命令中添加“ -keyalg RSA”,以缓解不匹配问题.我在同一keygen命令中错误地同时尝试了-keyalg和-sigalg.上面的代码现在无例外地执行.
内容总结
以上是互联网集市为您收集整理的无法使用Java / Keytool签署挖掘信号全部内容,希望文章能够帮你解决无法使用Java / Keytool签署挖掘信号所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。