创建充当校验和并验证发件人的文件的最佳方法?

时间:2016-02-27 00:50:41

标签: python encryption hash sha256 pki

我希望将文件发送给多个人,但我也希望他们知道:

  1. 自我发送给他们以来,该文件尚未更改。
  2. 他们知道发送文件的是我。
  3. 我正在使用Python进行编码,因此我考虑拉入文件,对其进行哈希处理,然后使用我的私钥加密哈希。我会将原始文件和这个新文件(可能只是一个.txt)一起发送给我想要的任何人。然后我的朋友可以使用我的公钥解密哈希,并将其与原始文件的哈希值进行比较。我想至少在SHA-256的水平上使用一些东西。我不想使用MD5或SHA-1。

    注意 - 我发送的原始文件不需要加密,只是寻找一些完整性和不可否认性。

    这是否符合上述两项要求?有没有一种简单的方法可以在Python中实现它?

1 个答案:

答案 0 :(得分:1)

  

我正在考虑拉入文件,对其进行哈希处理,然后使用我的私钥加密哈希

这正是我们通常所说的签名数字签名,它符合您的两个要求。

  

这是否符合上述两项要求?

是。签署消息并不能防止它被操纵。只有不可行为没有私钥的被操纵消息生成签名。

  

有没有一种简单的方法可以在Python中实现它?

当然,pyCrypto支持RSA和DSA。不过,您应该尝试ed25519,因为它的签名较小。