首页 > 解决方案 > Java 等效于“openssl rsautl -verify -out”

问题描述

我有一些使用以下内容签名的数据:

openssl rsautl -sign -in file -inkey PrivateKey.pem -out sig

然后可以使用以下方法恢复签名的数据:

openssl rsautl -pubin -inkey PublicKey.pem -verify -in sig -out file

我已将公钥转换为 Java PublicKey 对象,并查看了将其与 java.security 中的 Signature 类一起使用,但这似乎没有允许恢复原始签名数据的方法。

有没有办法使用 Java 恢复签名数据?

标签: javaopensslrsadigital-signature

解决方案


正如 dave_thompson_085 在评论中所建议的那样,可以使用以下方法来恢复数据:

Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, publicKey);

byte[] extractedBytes = cipher.doFinal(sig);

推荐阅读