我想对我写的一些 Python 代码文件进行签名,因为它们是我的一个项目的插件模块。为了分发它,我希望用户可以确保插件经过验证和安全(因为由我或我信任的人编写)并且没有被修改。
该软件只是一个开源的爱好项目,因此我不想花任何钱购买官方证书。相反,我假设主程序始终有效并且无需额外验证即可信任。如果有人从我的 GitHub 存储库以外的任何其他位置下载它,那是他们的错。
从我读过的内容来看,签名通常是通过创建一个非对称密钥对、从代码文件中计算一个强加密哈希值(例如 SHA-512)、使用我的私钥加密哈希并将该签名存储在一个单独的文件中来完成的与原始代码文件一起提供。
然后,主程序必须使用以明文形式保存在主程序源代码中的公钥解密签名,计算代码文件的相同哈希函数,然后将其与解密后的哈希函数进行比较。如果它们匹配,则可以信任该插件。
所以现在我的问题是:
如何使用 Ubuntu 工具轻松创建强大的非对称密钥对,以及如何轻松计算文件的加密哈希值?
在脚本中自动化签名过程(始终使用相同的密钥)会很棒。