我尝试从KeyStore获取密钥。我通过Keytool创建了一个密钥库:
keytool -genkeypair -dname“ cn = Mark Jones,ou = JavaSoft,o = Sun,c = US”
-alias business2 -keypass abcdtest -keystore C:\ workspace \ XMLSample \
keystore \ mykeystore.jks -storepass 123456
以下是GenerateXML.java
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.cert.X509Certificate;
import javax.xml.crypto.dsig.XMLSignContext;
import javax.xml.crypto.dsig.XMLSignatureFactory;
import javax.xml.crypto.dsig.dom.DOMSignContext;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
public class GenerateXML {
public static void main(String[] args) throws Exception {
try {
char[] passwd = "123456".toCharArray();
//Load the KeyStore and get the signing key and certificate
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream("C:\\workspace\\XMLSample\\keystore\\mykeystore.jks"), passwd);
KeyStore.PrivateKeyEntry keyEnt = (KeyStore.PrivateKeyEntry)ks.getEntry("business2", new KeyStore.PasswordProtection(passwd)); // -> ERROR IN THIS ROW
X509Certificate cert = (X509Certificate)keyEnt.getCertificate();
//Create a DOMSignContext
XMLSignContext context = new DOMSignContext(keyEnt.getPrivateKey(), doc.getDocumentElement()) ;
//Create a DOM XMLSignatureFactory
XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM");
} catch(Exception e) {
e.printStackTrace();
throw new Exception(e.toString());
}
}
}
我在Java 1.6上运行
但是有错误:
java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(KeyProtector.java:311)
at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:121)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:38)
at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:456)
at java.security.KeyStore.getEntry(KeyStore.java:1261)
at xml.generate.GenerateXML.main(GenerateXML.java:31)
这基本上意味着两件事,
我怀疑是第一名。仔细检查您的密码。尝试是否可以使用相同的密码在keytool中列出密钥。
我尝试让 SHA1 用于火基地,但我无法获得 SHA1 在JavaVirtualMachines我使用jdk1.8.0_202.jdk 我试着进入梯度- = keytools-exportcert-alias androiddedegkey-keystore~/. android/debug.keystore-list-v keytool-list-v-keystore/Users/bobhope
exception.message=“参数:连接字符串:[没有指定连接字符串],资源:https://vault.azure.net,权限异常消息:尝试了以下3种方法来获取访问令牌,但都不起作用。参数:连接字符串:[未指定连接字符串],资源:https://vault.azure.net,权限:异常消息:试图使用托管服务标识获取令牌。无法连接到托管服务标识(MSI)终结点。请检查您正在运行的Azu
我试图为某些设备生成密钥时出错。我能够在运行4.4.2的三星Galaxy Note上重现错误。 我创建了一个小应用程序,只能通过从Android开发者页面“生成新私钥”下的https://developer.android.com/training/articles/keystore.html逐行复制代码来生成密钥 错误似乎发生在kpg.generateKeyPair(),在Android Key
我有一个如下格式的文本文件 我有一个类对象Hmp,它有两个字符串变量来存储问题(q1, q2, q3,...)和答案(a1, a2, a3,...)。我试图做的是保持模块id作为键,我想用值填充哈希图作为对象的数组列表(对象Hmp)。反过来,我将键存储在字符串的数组列表中。 在下面的代码段中, *l_ext_keys*是存储键的字符串数组列表,*l_extract*是HashMap 问题 Hash
这是获取用户帐户及其Api密钥的endpoint:https://dev.openclinica.com/apidoc/#api-User_Account-getAccountByUserName使用带有postman的follingendpoint 后http://89.221.253.174:8080/OpenClinica/pages/accounts/login?username=pran