课程:生成和验证签名

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

本课程将指导您完成使用 JDK Security API 生成数据的数字签名以及验证签名是否可信的必要步骤。本课程适用于希望将安全功能合并到其程序中的开发人员,包括加密服务。

本课程演示了如何使用 JDK Security API 来签署文档。该课程显示由具有原始文档的人执行的一个程序将用于生成密钥,使用私钥生成文档的数字签名,以及将公钥和签名导出到文件。

然后它显示了另一个程序的示例,由文档的接收者,签名和公钥执行。它显示了程序如何导入公钥并验证签名的真实性。本课程还讨论并演示了提供和导入密钥的可能替代方法和方法,包括证书。

有关概念和术语(数字签名,证书,密钥库)的更多信息,请参阅 API 和用于安全代码和文件交换的工具课程。

在本课程中,您将创建两个基本应用程序,一个用于生成数字签名,另一个用于验证。接下来是对潜在增强功能的讨论和演示。本课包含三个部分。

  • 生成数字签名显示使用 API​​为使用私钥的数据生成密钥和数字签名,并将公钥和签名导出到文件。应用程序从命令行获取数据文件名。

  • 验证数字签名显示使用 API​​导入公钥和签名,该签名被声称是指定数据文件的签名,并验证签名的真实性。数据,公钥和签名文件名在命令行中指定。

  • 弱点和替代方案讨论了基本程序使用的方法的潜在弱点。然后介绍并演示了提供和导入密钥的可能替代方法和方法,包括使用包含编码密钥字节的文件和使用包含公钥的证书。