java - 如何使用二分搜索比较 x509 证书

标签 java x509certificate binary-search comparable

我有一个列表,该列表有一个 x509certificate,我用它来存储在 cms 包中。真是花花公子,直到我遇到了这个问题:我不能让同一个人签名两次。
所以,我知道如何平等地找到该证书,即线性搜索。

这听起来可能纯粹是虚荣心,但我宁愿使用二分搜索,显然使用可比较
我怎么能这么做呢? (javabouncyCaSTLe)。

谢谢

最佳答案

将证书存储在 TreeSet 中,并使用 Collections.binarySearch 查找感兴趣的证书(您必须将您的 Set > 首先放入 List 中)。 TreeSet 的底层是一个 TreeMap,因此如果您不喜欢该实现,您可以实现 SortedSet 并创建您自己的。如果不担心重复的证书,请将它们存储在 List 中,并在调用 binarySearch 之前对其进行排序。

您是否有理由不想使用好的Collection.contains

关于java - 如何使用二分搜索比较 x509 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244227/

相关文章:

javascript - 二分查找提前退出?

java - 内部表示的数组与私有(private)类 : Java Ethics

java - 检查用户输入格式是否正确的方法

wcf - C# WCF 客户端错误 "The private key is not present in the X.509 certificate"

python - 解析证书的 keyid - Python

python - 调试二进制搜索

java - 用 Java 读取大文件

java - 使用外部 TSL 执行 RestTemplate

java - 从证书中检索主题/CN 字段?

c++ - 没有 if-else 语句的递归二分查找 C++