- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我读到 KeyChain.getPrivateKey(Context,String) 方法在 Android 4.1 上存在问题,尽管在旧版本上它可以工作。有人有解决方案如何在 JellyBean 上获取私钥吗?
看到这个Using Android 4.1 Keychain , 但不知何故无法处理我的案例。
代码不适用于 4.1,但在旧版本上运行良好。
PrivateKey pk;
try {
pk = KeyChain.getPrivateKey(context,string);
byte[] pkByte = pk.getEncoded();
pkBase64 = new String(Base64.encode(pkByte, Base64.NO_WRAP));
}
已编辑:发现如果我在添加时不更改证书别名(默认的十六进制-十六进制-十六进制),则 getPrivateKey 返回 null,但是当我将别名更改为,例如,aaa 方法返回一些东西,但仍然没有正确的私钥。 (例如,返回私钥 primeP =null primeQ =null。在 Android 4.0.4 上 primeP 和 primeQ 不是空值)
最佳答案
您不能假设 PrivateKey
可以被编码。如果 PrivateKey
为 getEncoded()
返回 null
,那么它只是不支持编码。查看documentation for Key.getEncoded() .
在 JellyBean 中,通过 KeyChain
返回的私钥永远不会在进程中。对它们执行的任何操作实际上都是在另一个进程中完成的,因为实际的关键问题可能存储在某种硬件安全模块中。您仍然可以调用 java.security.Signature
具有此 key 的 API。
关于android - Android 4.1 上的 KeyChain.getPrivateKey(Context,String)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12507697/
我正在编写我自己的 X509KeyManager 实现,我遇到了函数 getPrivateKey(String alias){},我只是想知道该函数何时被调用。在文档中,调用所有这些函数的时间和地点不
本文整理了Java中javax.security.auth.x500.X500PrivateCredential.getPrivateKey()方法的一些代码示例,展示了X500PrivateCred
我读到 KeyChain.getPrivateKey(Context,String) 方法在 Android 4.1 上存在问题,尽管在旧版本上它可以工作。有人有解决方案如何在 JellyBean 上
我的应用程序中收到致命信号 11 (SIGSEGV)。它发生在按下按钮(onClick 被执行)之后,获取 KeyChain 别名的私钥,然后在垃圾收集器下次运行时发生。 更多信息: 我只能在 Sam
我是一名优秀的程序员,十分优秀!