【发布时间】:2019-05-10 22:52:24
【问题描述】:
我在下面使用 Python 2.7 编写了一些代码,并使用了 pynacl,在 mac os x 上运行。它目前的工作方式如下所述,它将加密密码,然后再解密。我想知道解密的最后几行是否可以在单独的python文件上?单独的 python 文件是一个每天运行的 cronjob,需要密码才能运行,这就是为什么我需要将解密部分放在文件 #2 上的原因。如有任何建议,请告诉我。
我已尝试将文件 #1 导入到文件 #2,甚至将文件 #1 中所需的变量保存到文件中,但无法将“SealedBox”保存到出现错误“TypeError:参数 1 必须可转换为缓冲区,而不是 SealedBox"
#!/usr/bin/env python2
import nacl.utils
from nacl.public import PrivateKey, SealedBox
import getpass
# Generate Bob's private key, as we've done in the Box example
skbob = PrivateKey.generate()
pkbob = skbob.public_key
# Alice wishes to send a encrypted message to Bob,
# but prefers the message to be untraceable
sealed_box = SealedBox(pkbob)
# This is Alice's message
message = getpass.getpass("LDAP Password is:")
# Encrypt the message, it will carry the ephemeral key public part
# to let Bob decrypt it
encrypted = sealed_box.encrypt(message)
# Store the data with binary mode:
# with open('file.bin', 'wb') as f:
# f.write(encrypted)
unseal_box = SealedBox(skbob)
# with open('file2.bin', 'wb') as f:
# f.write(unseal_box)
# decrypt the received message, this is where File #2 would start
plaintext = unseal_box.decrypt(encrypted)
print(plaintext.decode('utf-8'))
【问题讨论】:
标签: python encryption public-key-encryption pynacl