【发布时间】:2018-01-18 07:21:48
【问题描述】:
我已经阅读了很多关于这个主题的内容,但我真的不明白我应该如何实现它。我想加密用户 A 的(文本)文件。用户已为他/她的帐户设置了密码,并且正在使用此密码对文本文件进行加密。现在用户与另一个用户 B 共享他的加密文件。这个用户当然为他/她的帐户设置了另一个密码。然而,他/她和只是他/她,应该能够在不知道用户 A 的密码的情况下解密文本。
我想我必须使用 私钥/公钥算法。我已经看过PyCrypto,但我真的不明白如何从用户 A 的密码创建公钥/私钥。
我更喜欢真正的 Python 解决方案,它不包含 pgp 可执行文件 或 dll。
一些伪代码:
key, encrypted = generate_public_key_and_encrypt(userA.password, "Hello World!")
userA.share_data(userB, key)
decrypted = decrypt(userB.password, key, encrypted)
【问题讨论】:
-
您的问题到底是什么?对于这些问题,我们通常会收到minimal reproducible example 和具体问题。
-
如何使用用户密码加密字符串?第一个用户分享后,其他用户如何解密?
-
通常你派生一个随机对称密钥,用其他用户的公钥加密它,用对称密钥加密文件,然后将两者传输给其他用户。但是,您的问题对于 StackOverflow 来说有点过于宽泛,因此它可能会被关闭。
-
这个算法中包含的密码在哪里?
-
不是。您应该在创建用户时为每个用户生成一个私钥。
标签: python security encryption cryptography pycrypto