与 python-rsa 的符号函数混淆
Confusion with python-rsa's sign function
我正在尝试使用 python-rsa 模块来加密计算机之间传递的消息。但是,文档中描述的 rsa.sign()
(https://stuvel.eu/python-rsa-doc/usage.html) 让我感到困惑。
请记住,我还没有对密码学做任何事情。
在文档中,签名消息是这样描述的:
(pubkey, privkey) = rsa.newkeys(512)
message = 'Go left at the blue tree'
signature = rsa.sign(message, privkey, 'SHA-1')
令人困惑的部分是验证:
message = 'Go left at the blue tree'
rsa.verify(message, signature, pubkey)
消息应该是什么?如果消息是我发的,那么签名是什么?
在参考中,签名描述为the signature block, as created with rsa.sign()
,但消息描述为the signed message. Can be an 8-bit string or a file-like object.
我觉得我遗漏了一些明显的东西。
那是因为签署消息并没有加密它。签名的目的是为了证明发送者的身份。 RSA 是 public key cryptography 的一种。当您想向爱丽丝发送加密消息时,您必须向她索取 public 密钥。您然后使用 public 密钥加密消息并将其发送给爱丽丝。如果她有私钥,她就可以解密消息并阅读它,而其他人则不能。签名消息是使用私钥生成签名。每个拥有您的 public 密钥和消息的人都可以通过签名确认您是私钥的所有者。
如果您这样做只是为了学习,那很好,但切勿在现实生活中使用 sha-1
。它陈旧过时,不再被认为是安全的。
我正在尝试使用 python-rsa 模块来加密计算机之间传递的消息。但是,文档中描述的 rsa.sign()
(https://stuvel.eu/python-rsa-doc/usage.html) 让我感到困惑。
请记住,我还没有对密码学做任何事情。
在文档中,签名消息是这样描述的:
(pubkey, privkey) = rsa.newkeys(512)
message = 'Go left at the blue tree'
signature = rsa.sign(message, privkey, 'SHA-1')
令人困惑的部分是验证:
message = 'Go left at the blue tree'
rsa.verify(message, signature, pubkey)
消息应该是什么?如果消息是我发的,那么签名是什么?
在参考中,签名描述为the signature block, as created with rsa.sign()
,但消息描述为the signed message. Can be an 8-bit string or a file-like object.
我觉得我遗漏了一些明显的东西。
那是因为签署消息并没有加密它。签名的目的是为了证明发送者的身份。 RSA 是 public key cryptography 的一种。当您想向爱丽丝发送加密消息时,您必须向她索取 public 密钥。您然后使用 public 密钥加密消息并将其发送给爱丽丝。如果她有私钥,她就可以解密消息并阅读它,而其他人则不能。签名消息是使用私钥生成签名。每个拥有您的 public 密钥和消息的人都可以通过签名确认您是私钥的所有者。
如果您这样做只是为了学习,那很好,但切勿在现实生活中使用 sha-1
。它陈旧过时,不再被认为是安全的。