我想创建一个程序,我可以做一些加密,然后把它发送给一个朋友,然后把加密密钥和解密代码发送给他,然后他可以自己解密消息。我只知道如何解密基于加密的东西,这是我的尝试:
导入加密从密码学
。输入fernet
key = Fernet.generate_key()
打印(键)
with open("pass.key", "wb") as key_file:key_file.write(键)
def call_key ():
return open("pass.key", "rb").read()
key = call_key()
code = "很棒的代码! !".encode ()
a = Fernet(key)
code = a.encrypt(code)
打印(代码)
key = call_key()
b = Fernet(key)
decoded_code = b.decrypt(code)
打印(decoded_code)
问题是要使其工作,必须知道加密的部分。我希望它能在不知道原始信息的情况下被解密。谢谢你的帮助:)
我认为你实际上拥有你想要的东西,你只是还没有把它们分开。假设您有两个脚本,而不是只有一个代码块。
encrypt.py
:
from cryptography.fernet import Fernet
key = Fernet.generate_key()
print(key)
with open("pass.key", "wb") as key_file: key_file.write(key)
code = "Hello!! Awesome code!!".encode()
a = Fernet(key)
code = a.encrypt(code)
print(code)
生成一些输出,其中第一行是密钥,第二行是带有您生成的密钥的编码消息。
b'uRcjLwzI3N732Zy02kz35SfFJXgXY3EVKHmSo66xqUg='
b'gAAAAABhXztbKmk_2ALnJSawKjelg2wmn-hdq5dtpIJK0KbveL1pioAJRdNOzuh91acsA0ZFil5VOrSF8oAT4VoV_opezc8BTQMjsV3wkvq78OSEG850pGA='
然后假设您将字节字符串与密钥文件pass.key
一起传递给您的朋友。然后你可以有,其中s
是编码信息,decrypt.py
:
from cryptography.fernet import Fernet
s = "gAAAAABhXztbKmk_2ALnJSawKjelg2wmn-hdq5dtpIJK0KbveL1pioAJRdNOzuh91acsA0ZFil5VOrSF8oAT4VoV_opezc8BTQMjsV3wkvq78OSEG850pGA="
code = bytes(s, "utf-8")
def call_key(): return open("pass.key", "rb").read()
key = call_key()
b = Fernet(key)
decoded_code = b.decrypt(code)
print(decoded_code)
生产
b'Hello!! Awesome code!!'