2016-12-23 3 views
0

J'ai la signature codée 64bit doivent vérifier SHA1Vérifiez la signature

ce que je l'ai fait

byte[] decodeValue = Base64.decode(currentItem.getEnclosure().getSignature(), Base64.DEFAULT); 

et je suis arrivé octet résultat

maintenant signature

try { 

Signature signature = Signature.getInstance("SHA1withRSA"); 

    if(signature.verify(decodeValue)){ 
... ... 

    }catch (Exception e){ 
    Log.e("ERROR",e.getMessage()); 
    } 

I a toujours reçu cette exception L'objet de signature n'est pas initialisé correctement

Comment résoudre ce

+0

ou lisez les docs pour l'exception et vérifié que votre entrée est correctement encodée? ["la signature transmise est incorrectement encodée ou de type incorrect"] (https://docs.oracle.com/javase/7/docs/api/java/security/Signature.html#verify (byte []) – px06

Répondre

1

Pour vérifier la signature, vous devez:

  1. initialiser l'objet de signature avec le certificat de l'émetteur,
  2. mise à jour d'appel() avec tous les octets du message,
  3. appel verify() avec les octets de la signature
+0

pouvez-vous aider avec le code – Adnan

+0

où est la signature? –

+0

decodeValue est la signature. Il ressemble à ceci cette valeur est base64 Q3FmBfpmCNTujKCeP + eVum3AT2DR9T0U1h7PS3ujpmi7P + 8taK + vDeMAVOk6puIQY + iY1Q2gXboTZd6U0/LuT4JF3brmT3lPQIyI7aSFxf4YLsRSy4hd/nArCEO +/uJUFUKig36tf2cNtu8fuZSfuDMsf5ho1In6nO6u + sp4dIk = – Adnan