前提
拥有多个证书吊销列表CRL,给定一个证书,验证这个证书是否被吊销。
分析
目前想到有三个方法来实现。
- 循环所有CRL来验证证书
- 循环所有CRL,判断哪个CRL的颁发者与证书颁发者相同,使用这个CRL来验证证书
- 加载CRL时与颁发者DN绑定,根据证书颁发者DN获得该CRL对象来验证证书
实现
第一种算法是采用for循环实现
第二种算法是采用for循环+if判断
第三种算法是采用Map对象
结果
根据测试程序的结果来看,不管是单线程还是多线程两种方案测试(在多线程中,采取的是每个算法开启1000个线程,每个线程循环执行10000次),结论都是一样,那就是第三种算法最优,第二种算法效率最低。