【发布时间】:2017-07-05 04:39:29
【问题描述】:
我自己一直在做一个项目,并使用这个website 的代码作为指导。有什么办法,我可以将密钥的生成放入一个文件中,并将加密/解密放入另一个文件中。如何定义 bob_box 而无需生成另一对密钥?
GEN.PY:
import libnacl.public
def genkeys():
bob = libnacl.public.SecretKey()
alice = libnacl.public.SecretKey()
bob_box = libnacl.public.Box(bob.sk, alice.pk)
alice_box = libnacl.public.Box(alice.sk, bob.pk)
genkeys()
ENDEcrypt:
import libnacl.public
from GEN import genkeys
msg = '1234'
# Bob's box encrypts messages for Alice
bob_ctxt = bob_box.encrypt(msg)
# Alice's box decrypts messages from Bob
bclear = alice_box.decrypt(bob_ctxt)
# Alice can send encrypted messages which only Bob can decrypt
alice_ctxt = alice_box.encrypt(msg)
aclear = bob_box.decrypt(alice_ctxt)
运行 ENDEcrypt 时的输出:
Traceback (most recent call last):
File "/home/pi/Desktop/BOBALICE/endecrypt.py", line 7, in <module>
bob_ctxt = bob_box.encrypt(msg)
NameError: name 'bob_box' is not defined
【问题讨论】:
-
@ArtjomB。哎呀!我的错,当我将钥匙添加到盒子中时,我犯了一个错误。我更新了我的代码
-
将 Bob 的私钥和公钥都传递给
libnacl.public.Box没有意义。公钥必须来自 Bob 想要与之通信的人。在这里,Bob 想与自己交流。 -
@ArtjomB。但是假设我只需要一对密钥(公共和私人),如果我按照网站上的代码,那不是给我两对密钥吗?
-
@ArtjomB。我已经简化了我的代码。一定要检查一下!
标签: python encryption key-pair nacl-cryptography pynacl