java - 签名无法使用 SHA1withDSA 进行验证

标签 java weblogic digital-signature signature

我写了一个简单的符号代码。这个简单的签名代码并没有验证。 dsa.verify(digitalSignature) 返回 false。 为什么这个验证失败呢? 应用服务器是weblogic 12.2.1.4.0。

URL url  = Thread.currentThread().getContextClassLoader().getResource("sueprv.gsdk");
InputStream is = url.openStream();
byte[] pk = new byte[335];
int rd = (is.read(pk));

privateKey = createPrivateKey(pk);
signature.initSign(privateKey);
byte[] bytes = "this is a test".getBytes();
signature.update(bytes);
byte[] digitalSignature = signature.sign();

URL url1 = Thread.currentThread().getContextClassLoader().getResource("suepub.gsdk");
InputStream inputStream = url1.openStream();

pk = new byte[444];
rd = (inputStream.read(pk));

Signature dsa = Signature.getInstance("SHA1withDSA", "SUN");

dsa.initVerify(createPublicKey(pk));

dsa.update(bytes);
System.out.println(dsa.verify(digitalSignature));

最佳答案

经过多次调试,我发现了这部分代码的问题:

rd = (inputStream.read(pk));

在代码中,我从 inputStream 读取了固定大小为 444 的公钥,但在调试中我发现无法读取 3 个字节的公钥。所以这造成了麻烦,因此该标志的验证失败。

关于java - 签名无法使用 SHA1withDSA 进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58899761/

相关文章:

java - 当新联系人添加到联系人列表 android 时如何通知我的应用程序

java - 如何使@CreatedBy和@CreatedDate在Spring数据jdbc中不可修改?

iText 分离签名方式

ios - 电子签名集成使我的多页 pdf 变成单页

Java点对点udp聊天室

java - 在 heroku 上部署 tomcat servlet 项目

java - 将 Jersey 和 RESTful Web 服务与 Weblogic 结合使用

spring - 在 weblogic 10.3.6 中部署 Spring 4.1.6 mvc webapp

java - 为什么我的Web应用程序NoClassDefFoundError : org/aspectj/lang/reflect/AjTypeSystem

java - 在 iOS (Swift) 上进行 RSA 签名并在 Java 中进行验证