2016-04-06 11 views
0

Ich versuche, das Byte [], das die Signatur, die in einem String ist, aber erhalten "java.security.SignatureException: ungültige Codierung für Signatur"java - Wie String zu einem Signaturbyte zu analysieren []

erhalten

Was ich versuche zu tun, eine signierte Zeichenfolge zu senden und veryfying es an Server, hier ist mein Code:

hier ist, wo ich meine Zeichenfolge schreiben über Web-Service zu senden:

Signature signer = Signature.getInstance("DSA"); 
signer.initSign(signerKey); 
signer.update(someString) 
byte[] signature = signer.sign(); 
newToken = someString + Base64.getEncoder().encodeToString(signature); 

Hier ist der serverseitige Code, um die Zeichenfolge zu erhalten und das Ganze damit zu verifizieren:

Also, was ist der beste Weg, um eine Signatur aus einer Zeichenfolge zu erhalten, die tatsächlich die Signatur darstellt, die ich versuche zu überprüfen?

Danke.

Antwort

0

Ich denke, das:

verified = verifier.verify(signature); 

sollte dies geändert werden:

verified = verifier.verify(sig); 

die Base64-Codierung oder etwas, was ich bin zu raten, Unterschrift, anstatt das rohe Bytes, die Sie benötigen.