【发布时间】:2023-03-06 11:06:01
【问题描述】:
这可能与以下内容重复: Java Signature.verify results in SignatureException: Signature encoding error Caused by IOException: Sequence tag error ,但答案没有回答我的问题。
有这个代码:
String RSA_CIPHER_ALGORITHM = "RSA/ECB/PKCS1Padding";
String RSA_KEY_FACTORY_ALGORITHM = "RSA";
String RSA_SIGNATURE_ALGORITHM = "SHA512withRSA";
KeyFactory keyFactory = KeyFactory.getInstance(RSA_KEY_FACTORY_ALGORITHM);
RSAPublicKey key = (RSAPublicKey)keyFactory.generatePublic(pubKeySpec);
Signature signature = Signature.getInstance(RSA_SIGNATURE_ALGORITHM);
signature.initVerify(key);
signature.update(data);
有这个错误:
java.security.SignatureException: Signature encoding error
at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:204)
at java.security.Signature$Delegate.engineVerify(Signature.java:1219)
at java.security.Signature.verify(Signature.java:652)
...
Caused by: java.io.IOException: Sequence tag error
at sun.security.util.DerInputStream.getSequence(DerInputStream.java:297)
at sun.security.rsa.RSASignature.decodeSignature(RSASignature.java:229)
at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:195)
... 45 common frames omitted
【问题讨论】:
标签: java rsa digital-signature