0
我已经实现了一个示例代码来生成哈希和签名并验证签名,如下所示: 但是,当iam尝试验证签名时,它抛出false,它无法验证签名。JAVA验证签名问题
我是遵照正确的程序。请不要建议
实际情况我需要的是我要计算一个文件的哈希,签署哈希和解密签名,这样我就可以得到哈希从而可以用原始散列验证。
你可以请建议我APIS使用,如果可能的话,一个示例程序来做到这一点。
public class Temp {
public static void main(String args[]) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, SignatureException{
KeyPairGenerator signkeygen = KeyPairGenerator.getInstance("RSA");
signkeygen.initialize(2048);//The argument specifies the length of the key in bits
KeyPair signkey = signkeygen.generateKeyPair();
PublicKey sign_publicKey = signkey.getPublic();
PrivateKey sign_privateKey = signkey.getPrivate();
String test = "hai";
Signature mysign = Signature.getInstance("SHA1withRSA");
mysign.update(test.getBytes());
byte[] byteSignedData = mysign.sign();
Signature vSign = Signature.getInstance("SHA1withRSA");
vSign.initVerify(sign_publicKey);
vSign.update(byteSignedData);
boolean signStatus = vSign.verify(byteSignedData);
System.out.println(signStatus);
...
您从不告诉'Signature'使用'signkey'或'sign_privateKey'?你与什么关键签约? –