2016-12-23 151 views
0

我有64位编码的签名 需要验证SHA1验证签名

这是我做过什么

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

,我得到了一个字节导致

现在签名

try { 

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

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

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

我总是得到这个异常签名对象没有被初始化正确

如何解决这个

+0

有y ou阅读异常的文档并验证您的输入是否正确编码? [“传入的签名不正确编码或错误类型”](https://docs.oracle.com/javase/7/docs/api/java/security/Signature.html#verify(byte []) ) – px06

回答

1

若要验证签名,你必须:

  1. 所有字节初始化与发行人的证书)签名的对象,
  2. 调用update(的消息,
  3. 调用验证()与签名的字节
+0

你可以帮助代码 – Adnan

+0

签名在哪里? –

+0

decodeValue是签名。它看起来像这样编码此值的base64 Q3FmBfpmCNTujKCeP + eVum3AT2DR9T0U1h7PS3ujpmi7P + 8taK + vDeMAVOk6puIQY + iY1Q2gXboTZd6U0/LuT4JF3brmT3lPQIyI7aSFxf4YLsRSy4hd/nArCEO +/+ uJUFUKig36tf2cNtu8fuZSfuDMsf5ho1In6nO6u = sp4dIk – Adnan