【发布时间】:2018-04-28 09:19:33
【问题描述】:
我是密码学领域的初学者。我有 2 个文件 - 其中一个是数字签名(p7s,signedData)和我应该用来验证签名的文件。问题是如何使用 Java 做到这一点?首先我认为我可以这样做
String rawString = ASN1ObjectIdentifier.fromByteArray(bytesArray).toString();
String rawStringForSurname = rawString.substring(rawString.indexOf("2.5.4.4,") + 9, rawString.length());
String signSurname = rawStringForSurname.substring(0, rawStringForSurname.indexOf("]"));
String rawStringForGivenName = rawString.substring(rawString.indexOf("2.5.4.42,") + 10, rawString.length());
String signGivenName = rawStringForGivenName.substring(0, rawStringForGivenName.indexOf("]"));
这显然很糟糕。我的输入数据只打算有一个文件(p7s 文件,后来解码为 ASN.1 并使用作者的(来自外部的数据,字符串)验证姓氏和全名)。令人惊讶的是,我应该有一个文件,我也应该用它来验证签名。我知道有奇怪的哈希码逻辑(该文件是完整的并且符号与文件完全相关)。问题是如何从文件中检索这些数据并签名?为了接受或拒绝它,我究竟应该比较什么?我使用的库是 Bouncy Castle。
【问题讨论】:
标签: java hash cryptography digital-signature asn.1