- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用套接字和 cryptography.fernet 库通过本地网络发送加密字符串,但是当接收到字节时,它会抛出“cryptography.fernet.InvalidToken”错误。如果我在一个文件中加密和解密,它确实有效,但如果我在本地或两台不同的计算机上托管服务器和客户端,它就不起作用。
服务器
import socket
from cryptography.fernet import Fernet
crypt = Fernet('sqcyNL5kz2mxWb1KL2QSZWY-GCERE-scEgWBbvq9CCk=')
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((host, port))
s.listen(10)
conn, addr = s.accept()
with conn:
while True:
messageEncrypt = conn.recv(2048)
message = crypt.decrypt(messageEncrypt, None).decode()
print(message)
客户端
import socket
from cryptography.fernet import Fernet
crypt = Fernet('sqcyNL5kz2mxWb1KL2QSZWY-GCERE-scEgWBbvq9CCk=')
message = 'sentence'
messageEncode = message.encode()
messageEncrypt = crypt.encrypt(messageEncode)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host, port))
s.sendall(messageEncrypt)
s.close()
客户端编码、加密,然后发送消息,客户端接收消息并解密。服务器确实正确解密并打印了消息,但立即崩溃,阻止了程序的其余部分运行。奇怪的是,它在解密后有足够的时间进行打印,然后才崩溃。有谁知道为什么会发生这种情况?
服务器控制台:
sentence
Traceback (most recent call last):
File "E:/Google Drive/School/###/###/python/project/morseSrv.py", line 50, in <module>
message = crypt.decrypt(messageEncrypt).decode()
File "C:\Python\lib\site-packages\cryptography\fernet.py", line 74, in decrypt
timestamp, data = Fernet._get_unverified_token_data(token)
File "C:\Python\lib\site-packages\cryptography\fernet.py", line 92, in _get_unverified_token_data
raise InvalidToken
cryptography.fernet.InvalidToken
Process finished with exit code 1
最佳答案
该问题是由服务器中的 while True 循环引起的。当它收到数据时,它会再次执行循环,但不会等待新数据。我已将其修改为在处理消息后跳出循环。
关于python - 通过网络发送加密消息时的 Cryptography.fernet.InvalidToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844402/
在这个函数中,我试图从文件中读取 Fernet key ,如果文件不包含 key ,则创建一个。 from cryptography.fernet import Fernet import csv w
我正在玩一个基于 python 后端的项目。我将使用 Django 来处理“核心”内容,并使用 FastAPI 来处理一些爬虫。我正在使用 Fernet 使用 Django 将一些数据加密到数据库中模
所以我决定使用 Fernet 对字符串进行编码 代码非常简单: private static final Key key = new Key("myrandomkey"); public static
我正在尝试将一个变量传递给加密方法。加密方式为python密码学的Fernet加密方式。 Var = "Hello World" Ecy = Fernet(Key) token = Ecy.encry
我正在用 Python 编写一个简单的密码程序(对于 Python 来说是新的,对于加密来说甚至是新的),其中用户帐户和密码被保存在字典中的文件中。我正在使用 Fernet 模块加密密码。添加用户工作
我对 pyhton 和密码学模块比较陌生,所以我正在尝试学习加密和解密的基础知识。当我加密文件并在同一个程序上解密时一切正常,但是如果我尝试只对预加密文件运行解密代码(当然我使用相同的 key )我会
我正在尝试使用套接字和 cryptography.fernet 库通过本地网络发送加密字符串,但是当接收到字节时,它会抛出“cryptography.fernet.InvalidToken”错误。如果
我想使用 Fernet 加密和解密 python 和 java 之间的消息模块。但我不明白他们举的例子。 反序列化现有 key : final Key key = new Key("cw_0x689R
我正在使用cryptography.fernet库来加密一些小文本,当我在服务器上收到该文本时,我想先验证它是否确实是有效的密文制作一个 RPC 来解密它,这样我的服务器就可以返回数据无效。有没有一些
我在 Python 2 中有以下脚本 crypto.py: import hashlib from cryptography.fernet import Fernet def make_hash(pa
我是 python 的新手,我正在开发一个加密文本字符串的程序,然后将其保存到文件中。当我在同一个 session 中加密然后解密时,我的程序完美运行。我想做的是:加密一个文件,然后关闭程序,稍后再回
我目前正在使用 Fernet使用 AES 128 key 的加密。但是我的客户需要使用 AES 256。我对密码学不是很熟悉,但这是我迄今为止所了解的。 Fernet 需要一个分成两半的 256 位
我一直在尝试了解对称加密的工作原理以及如何将其集成到我的 CLI 应用程序中,但我遇到了一些我将在下面描述的问题。 我的用例如下: 我有一个 CLI 应用程序( SQLAlchemy + click
我使用 FERNET_KEY 进行了 dockerized Airflow 服务作为使用 .env 导出的环境变量文件(其中还包括除 FERNET_KEY 之外的其他环境变量)。 当我构建并运行 do
我正在尝试编写一个用 Python 加密并用 Java 解密的代码,但出现错误。 我在 python 中使用 cryptography.fernet 来加密文件,当我使用 Fernet Java 进行
我正在尝试将使用 python 加密模块( https://cryptography.io/en/latest/ )生成的 Fernet key 写入 .txt 文件。然后读取该 .txt 文件以检索
我可以使用 Cryptography 模块进行 AES 加密吗?什么是 Fernet?它是否像 AES 加密一样安全? 最佳答案 在 GCM 出现之前,Fernet 更有意义,因为自己正确实现 CBC
我试过这个: from cryptography import * try: #code here to create key from a password f=Fernet(key
from cryptography.fernet import Fernet import base64 # Put this somewhere safe! key = Fernet.generat
我正在尝试将此 Fernet 加密 token 插入到我数据库中的表中。它是有关侦察兵的加密医疗信息 b'gAAAAABcIRmX3txIuOrw6FoSxy7I1vorA8hTTzMcXQGwch_
我是一名优秀的程序员,十分优秀!