这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
课程:生成和验证签名
该课程手把手教你使用Java Security API生成数字签名并验证数字签名的真实性。它是为那些希望将安全功能(包括密码学服务)集成到程序中的开发人员准备的。
该课程演示了Java Security API在文档签名方面的使用。该课程展示一个拥有原始文档的人所执行的程序,该程序展示如何生成密钥、如何使用私钥为文档生成数字签名、以及如何将公钥和签名导出到文件中的过程。
然后,它展示另一个由文档、签名和公钥的接收者执行的示例。该示例展示了程序如何导入公钥并验证签名的真实性。该课程还讨论和演示了提供和导入密钥(包括在证书中)的可能替代方案。
有关概念和术语(数字签名、证书、密钥存储)的更多信息,请参见教程:用于安全代码和文件交换的API和工具
在本节课中,您将创建两个基本应用程序,一个用于数字签名生成,另一个用于验证。接下来将讨论和演示潜在的增强功能。这节课包括三个部分。
- 生成数字签名 展示了如何使用API生成密钥、如何使用私钥生成数字签名,并将公钥和签名导出到文件中的过程
- 验证数字签名 展示了如何使用API导入一个公钥和一个据称是指定数据文件的签名,并验证签名的真实性。数据、公钥和签名文件名都将在命令行中指定。
- 不足和可替代方案 讨论了演示程序在生成和验证数字签名方法论上潜在的不足。
参考链接:https://docs.oracle.com/javase/tutorial/security/apisign/index.html