首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >成功尝试输入密码后,PKCS#11密钥存储库不会验证密码。

成功尝试输入密码后,PKCS#11密钥存储库不会验证密码。
EN

Stack Overflow用户
提问于 2013-06-12 23:27:59
回答 1查看 1.5K关注 0票数 3

我使用以下代码从雅典娜智能卡读取器中访问PKCS#11智能卡的内容。

代码语言:javascript
复制
Provider pkcs11Provider = new SunPKCS11(new ByteArrayInputStream (config.getBytes()));
if (Security.getProvider(pkcs11Provider.getName()) != null) {
    Security.removeProvider(pkcs11Provider.getName());
}

Security.addProvider(pkcs11Provider);

KeyStore myKeyStore = KeyStore.getInstance ("PKCS11", pkcs11Provider);
myKeyStore.load(null, keystore_password.toCharArray());

return myKeyStore;

问题如下:

  1. 我输入错误的密码。
  2. 代码抛出异常(如预期的那样)。
  3. 我输入正确的密码。
  4. 代码不会抛出异常(正如预期的那样)。
  5. 我输入错误的密码。
  6. 代码不会抛出异常(意外)。

根据http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html的说法,当使用KeyStore.Builder类时,在第一次成功地使用相同的智能卡加载之后,不需要任何密码。当然,我不会在上面的代码中使用这个类。同样的情况是否适用于KeyStore.getInstance(...)方法?在输入错误密码时,是否有任何方法使密钥存储库抛出异常,而不管以前的加载尝试如何?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-20 16:50:47

尝尝这个

代码语言:javascript
复制
((SunPKCS11) pkcs11Provider ).logout();
pkcs11Provider.clear();

如果这没有帮助,那么在每次登录之前用新创建的SunPKCS11对象替换提供程序

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17077049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档