验证数字签名

原文: https://docs.oracle.com/javase/tutorial/security/apisign/versig.html

如果您有生成数字签名的数据,则可以验证签名的真实性。要做到这一点,你需要

  • 数据
  • 签名
  • 与用于签署数据的私钥对应的公钥

在此示例中,您编写VerSig程序以验证 GenSig 程序生成的签名。这演示了验证所谓签名的真实性所需的步骤。

VerSig导入公钥和签名,该签名被声称是指定数据文件的签名,然后验证签名的真实性。公钥,签名和数据文件名在命令行中指定。

创建VerSig示例程序以导入文件和验证签名的步骤如下。

  1. 准备初始程序结构

    创建名为VerSig.java的文本文件。键入初始程序结构(import 语句,类名,main方法等)。

  2. 输入和转换编码的公钥字节

    从指定为第一个命令行参数的文件中导入编码的公钥字节,并将它们转换为PublicKey

  3. 输入签名字节

    从指定为第二个命令行参数的文件中输入签名字节。

  4. 验证签名

    获取Signature对象并使用公钥对其进行初始化以验证签名。向其提供要验证其签名的数据(从指定为第三个命令行参数的文件),并验证签名。

  5. 编译并运行程序