无法在linux x64上签名的Windows x86上使用Java验证数字签名

时间:2012-01-15 05:39:48

标签: java digital-signature

我很难找到问题的原因。 问题的核心是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签名并验证代码始终有效。没有例外。

请分享任何想法。

谢谢!

0 个答案:

没有答案