我正在尝试使用 Java 与 CAC 通信。从开发人员工具包中,我能够找到有关提取唯一 ID (CHUID) 的信息和一些其他信息,例如卡上可用的小程序。但是,我无法从卡中提取用户名 (LastName.FirstName.MiddleName.ID),而且我也无法找到有关 CAC 内容的文档。
我没有使用该卡访问安全网站。我在桌面应用程序中使用它来验证用户身份,因此不会访问存储在卡上的证书。我能够访问存储在卡上的不同小程序,但不知道如何获取用户名。需要此用户名来验证我们系统中的用户。如何从 CAC 获取用户名?
最佳答案
我不确定您使用什么来执行此操作,但如果您使用 PKCS#11 访问它,则需要在卡的 KeyStore
中找到别名,其中包含文本“身份证”。然后,您可以使用 keyStore.getCertificate(alias)
将该证书作为 X509Certificate
获取,并使用 cert.getSubjectX500Principal().getName 获取您要查找的名称()
。
是的,我也从来没有真正找到任何关于这类事情的文档。
关于java - 如何使用 Java 从 DoD CAC 中提取用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4455604/