- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一个适用于 .NET 和 Java 的对称 key 的安全存储。我需要能够以两种语言以编程方式而不是通过命令行工具从同一存储中存储和检索 HmacSha* key 。
我的第一次尝试是使用 PKCS12 keystore 从 Java 生成和存储 key ,这是一种可移植格式,我认为它支持存储 key 以及 X.509 证书的私钥。
但是,到目前为止,我的经验是它没有(注意:Java SE 6),在调用 java.security.KeyStore.setKeyEntry() 时抛出异常,提示我试图存储的 key 不是 PrivateKey .
我发现一篇文章声称这应该是可能的:http://www.pixelstech.net/article/1420427307-Different-types-of-keystore-in-Java----PKCS12
但是,如果我从那篇文章中提取示例代码(标题为“存储 key ”部分下的示例),我会在对 setKeyEntry() 的同一调用中得到相同的异常。
有谁知道我是否可以使用 Java 中的 PKCS12 keystore 满足这些要求?
FWIW,这是代码:
public void gen( String thePath, String thePassword ) throws Exception {
KeyGenerator keygen = KeyGenerator.getInstance("HmacSHA1");
Key key = keygen.generateKey();
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(null, null);
// This call throws an exception
keystore.setKeyEntry("theKey", key, thePassword.toCharArray(), null);
keystore.store( new FileOutputStream(thePath), thePassword.toCharArray() );
}
最佳答案
KeyStore
Java SE 的实现在以后的版本中获得了很多关注。对于 JCEKS key 存储,您的代码应该可以在 Java SE 8 上正常运行,但不能在 Java SE 7 上运行。
您可能需要等待 Java 9 以获得 PKCS#12 支持。 Java 9 将专注于支持 PKCS#12 key 存储。
关于cryptography - 如何在 Java PKCS12 keystore 中存储对称 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28684530/
我是一名优秀的程序员,十分优秀!