我正在用 Python 编写一个宠物项目,它涉及用户 A 和 B 通过网络进行交互,试图确保每个用户都有来自用户 C 的同一文件的本地副本。
这个想法是 C 给每个人一个已经过数字签名的文件。 A 和 B 交换他们拥有的数字签名,并在他们自己的副本上进行检查。如果签名失败,则其中之一的文件版本不正确/损坏/修改。
因此,问题是 C 能否分发以某种方式包含它自己的签名的单个文件?还是 C 需要单独提供文件和签名?
最佳答案
单独来自 C 的数字签名应该足以让 A 和 B 确认他们的文件没有损坏,而无需彼此通信。如果 A 和 B 没有收到 C 的签名,他们可以各自创建文件的加密哈希并比较哈希,但这不需要 C 方面的任何数字签名。
如果您希望 C 对文件进行签名,请将签名和文件分开发送,或者将它们都包装在某种容器中,例如 zip 文件或自行开发的解决方案(例如,文件中的第一行代表签名,其余的是有效载荷)。
要从字面上回答您的问题,签名不必在文件本身之外,但正在签名的部分不能包含签名本身。
关于python - 安全的加密签名必须驻留在它所引用的文件之外吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132766/