我很难找到问题的原因。 问题的核心是Signature.verify总是返回false。 在带有x64架构的Linux机器上创建签名,我在Windows x86上验证。
以下是签名的代码
Signature dsa = Signature.getInstance("SHA1withDSA");
dsa.initVerify(getPublicKey());
byte[] licenseeB = licensee.trim().toUpperCase().getBytes("UTF-8");
dsa.update(= merge(0, encodedLicenseB, licenseeB));
return dsa.verify(signature);
这是签名代码
byte[] encodedLicenseB = license.getEncoded();
byte[] licenseeB = license.getLicensee().trim().toUpperCase().getBytes("UTF-8");
Signature dsa = Signature.getInstance("SHA1withDSA");
dsa.initSign(getPrivateKey());
dsa.update(merge(0, encodedLicenseB, licenseeB));
byte[] signature = dsa.sign();
从IDE签名并验证代码始终有效。没有例外。
请分享任何想法。
谢谢!