Java 签名无法使用SHA1 WITHDSA进行验证

Java 签名无法使用SHA1 WITHDSA进行验证,java,weblogic,digital-signature,signature,Java,Weblogic,Digital Signature,Signature,我已经写了一个简单的符号代码。这个简单的签名代码不能验证。 dsa.verify(数字签名)返回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

我已经写了一个简单的符号代码。这个简单的签名代码不能验证。
dsa.verify(数字签名)
返回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个字节的公钥无法读取。因此,这就产生了问题,因此,该符号的验证失败。

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

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