我可以从X509Certificate
实例(例如"SHA256WithRSA"
)中提取OID和签名算法的名称,但是如何提取摘要算法的名称,例如: "SHA256"
。
在"with"
的字符串拆分或OID的固定映射旁边是否有办法?
附带问题:拆分"with"
是否安全?
答案 0 :(得分:2)
证书仅包含签名算法OID,该算法映射到唯一的摘要/算法。因此,找到摘要算法的最简单方法是使用映射表OID - >消化算法。
不幸的是,我知道没有可以找到这些OID的集中位置。但是,可以在这些RFC中收集它们:
解析算法名称并拆分“With”应该有效但有这些限制
getSigAlgName()
方法将返回OID.a.b.c.d...
形式的字符串。例如,旧的Java6不支持SHA256withDSA
算法,并且将打印OID.2.16.840.1.101.3.4.3.2