我希望将一个文件发送给多个人,但我也希望他们知道:
- 自从我将文件发送给他们后,该文件没有更改过。
- 他们知道是我发送了文件。
我正在用 Python 编写代码,所以我想拉入文件,对其进行哈希处理,然后使用我的私钥加密哈希。我会将原始文件连同这个新文件(可能只是一个 .txt)发送给任何我想要的人。然后我的 friend 可以使用我的公钥解密哈希并将其与他们对原始文件的哈希进行比较。我想至少使用 SHA-256 级别的东西。我不想使用 MD5 或 SHA-1。
注意 - 我发送的原始文件不必加密,只是为了确保完整性和不可否认性。
这是否满足上述两个要求?有没有一种简单的方法可以在 Python 中实现它?
最佳答案
I was thinking of pulling in the file, taking a hash of it, and then encrypting the hash with my private key
这正是我们通常所说的签名或数字签名,它满足了您的两个要求。
Would this fulfill the two requirements above?
是的。签署消息并不能防止它被操纵。在没有私钥的情况下为被操纵的消息生成签名只会变得不可行。
And is there an easy way to implement this in Python?
关于python - 创建充当校验和并验证发件人的文件的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35664325/