- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 Fernet使用 AES 128 key 的加密。但是我的客户需要使用 AES 256。我对密码学不是很熟悉,但这是我迄今为止所了解的。
Fernet 需要一个分成两半的 256 位 key 。前半部分是签名 key ,后半部分是加密 key 。因为它们是 128 位长,所以是 AES 128。
将输入 key 加倍并修改如下实现以获得 AES 256 是否足够?
class Fernet(object):
def __init__(self, key, backend=None):
if backend is None:
backend = default_backend()
key = base64.urlsafe_b64decode(key) # Here 512 bits long instead of 256
self._signing_key = key[:16] # double this
self._encryption_key = key[16:] # double this
self._backend = backend
最佳答案
是的,您可以将二进制输入加倍, key 之前的输入是 base 64 编码的。结果是否为 256 位安全取决于 key 的生成方式。所以是的,可以将 key 的大小检查加倍,但这并没有说明什么。如果输入 key Material 为 512 位,安全级别为 512 位,则是,那么拆分 key 就可以了。
我个人建议(我过去曾向 Fernet 推荐过)使用 HKDF 来派生两个 key ,而不是将 key 一分为二。我看不到 key 是如何生成的,但是如果它是由 PBKDF2 生成的——Fernet 确实使用它从密码创建 key ——那么 PBKDF2 可能需要两倍的工作量来生成 512 位,而攻击者只需要生成 256位来执行攻击(因此执行一半的工作)。
请注意,使用 base64 编码不适用于键,因为在大多数运行时字符串很难从内存中删除;如果 key 存储在 keystore 中会好得多。
关于python - 如何使用 AES 256 实现 Fernet 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50425623/
在这个函数中,我试图从文件中读取 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_
我是一名优秀的程序员,十分优秀!