0

我正在尝试验证签名 base45 加密 JSON 护照数据的签名。

主要目标 - 验证我从服务器检索的数据。我找到了一些代码并且无法理解一些参数(也许我完全错了)

 byte[] signatureBytes = Base64.decode(signature, Base64.DEFAULT);
 Signature signatureInstance = Signature.getInstance("SHA256withRSA", "BC");
 signatureInstance.initVerify(publicKey);
 signatureInstance.update(signedData.getBytes("UTF-8"));
 boolean result = signatureInstance.verify(signatureBytes);

所以在这里我们看到:

 - signature
 - publicKey
 - signedBytes

我可以从服务器检索公钥。这就像base64String。下面的代码我用来将其转换为 PublicKey

    String publicKeyString = "base64PublicKey";                                  
    PublicKey publicKey = KeyFactory.getInstance("RSA").
generatePublic(new X509EncodedKeySpec(DatatypeConverter.parseBase64Binary(publicKeyString)));

但是其他两个参数呢:签名和签名数据。

我可以检索签名为 base45 加密 JSON 的数据,但无法理解该签名或 signedData 是什么。例如,如果是签名,那么签名数据是什么?我对这部分代码不熟悉,真的不明白。也许有人可以帮助我?

4

0 回答 0