- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将使用 python 加密模块( https://cryptography.io/en/latest/ )生成的 Fernet key 写入 .txt 文件。然后读取该 .txt 文件以检索 key 。
from cryptography.fernet import Fernet
import csv
#Creates textfile if textfile has not been created
with open("Keys.txt", "w+") as csvfile:
csvfile.close()
with open("Keys.txt","rU") as csvfile:
reader=csv.reader(csvfile)
KeyFound=0
for row in reader:
if len(row)>0:
KeyFound=1
Key=row
print(Key)
else:
pass
if KeyFound==0:
Key = Fernet.generate_key()
print(Key)
print("Created Key")
csvfile.close()
#Writing Key to textfile
if KeyFound==0:
with open("Keys.txt", "w+") as csvfile:
writer=csv.writer(csvfile)
writer.writerow(Key)
csvfile.close()
但是,当我运行此代码时,它会生成一个 bytes
字符串而不是 key 。
示例:Fernet key :b'jDyzNLo3aPD6-zFGVRnzMyBdyy93wQhemJ8QR4VH2I0='
写成:106,68,121,122,78,76,111,51,97,80,68,54,45,122,70,71,86,82,110,122,77,121,66,100,121,121,57,51,119,81,104,101,109,74,56 ,81,82,52 ,86,72,50,73,48,61
我希望 .txt 文件包含 key :b'jDyzNLo3aPD6-zFGVRnzMyBdyy93wQhemJ8QR4VH2I0='
我对这个问题做了一些研究,我知道 b'
表示一个字节字符串,但我仍然不知道为什么它被表示为字节数字列表而不是 b'jDyzNLo3aPD6-zFGVRnzMyBdyy93wQhemJ8QR4VH2I0='
我知道将 key 保存到 .txt 文件可能不是最安全的方法,因此欢迎任何其他方法。
最佳答案
发生这种情况是因为这是预期的行为。来自Python csv official docs
Writer Objects
Writer objects (DictWriter instances and objects returned by the writer() function) have the following public methods. A row must be an iterable of strings or numbers for Writer objects and a dictionary mapping fieldnames to strings or numbers (by passing them through str() first) for DictWriter objects.
尝试使用 DictWriter(和 DictReader)
with open("Keys.txt", "w+") as csvfile:
headers = ['key']
writer=csv.DictWriter(csvfile, fieldnames=headers)
writer.writeheader()
writer.writerow({'key': b'jDyzNLo3aPD6-zFGVRnzMyBdyy93wQhemJ8QR4VH2I0='})
csvfile.close()
关于python - 将 Fernet key 写入文本文件会生成字节字符串而不是 ASCII 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53870130/
在这个函数中,我试图从文件中读取 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_
我是一名优秀的程序员,十分优秀!