메시지의 서명을 확인하려고하는데 다음과 같은 예외가 발생합니다. 여기 서명 검증 중, 예외가 발생했습니다 : java.io.IOException : 시퀀스 태그 오류
Exception in thread "main" java.security.SignatureException: Signature encoding error
at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:185)
at java.security.Signature$Delegate.engineVerify(Signature.java:1140)
at java.security.Signature.verify(Signature.java:592)
... 4 more
Caused by: java.io.IOException: Sequence tag error
at sun.security.util.DerInputStream.getSequence(DerInputStream.java:280)
at sun.security.rsa.RSASignature.decodeSignature(RSASignature.java:209)
at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:174)
... 6 more
이
Signature sig = Signature.getInstance("SHA1withRSA");
sig.initVerify(publicKey);
sig.update(message);
return sig.verify(signature);
publicKey
나는이 오류가 올바른 헤더를 누락 인증서에 의해 발생되고 있음이 website에서 읽을 JCERSAPublicKey
의 인스턴스 내 자바 코드이며, 바닥 글 태그 (예 : -----BEGIN CERTIFICATE-----
및 -----END CERTIFICATE-----
). 그러나 인 경우 인증서를 사용하는 이 아닌이지만 공개 키입니다. 내 공개 키 PEM 파일을 보면 공개 키에 적합한 헤더가 있음을 알 수 있습니다.
-----BEGIN PUBLIC KEY-----
...STUFF
...STUFF
...STUFF
...STUFF
...STUFF
...STUFF
-----END PUBLIC KEY-----
이 오류는 키 파일과는 아무런 관련이 없습니다. –
그래, 나는 그것을 알아 냈다. 따라서 아래의 나의 해결책. 그래도 도와 줘서 고마워. – John