首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Python Fernet生成自己的密钥

使用Python Fernet生成自己的密钥
EN

Stack Overflow用户
提问于 2017-06-08 18:16:46
回答 3查看 17.8K关注 0票数 13
代码语言:javascript
运行
复制
from cryptography.fernet import Fernet

import base64
# Put this somewhere safe!
key = Fernet.generate_key()

f = Fernet()
token = f.encrypt(b"A really secret message. Not for prying eyes.")
token
print f.decrypt(token)

如何生成自己的密钥而不是fernet.genrate_key()

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-10 08:48:20

在fernet中,可以使用fernet Key Derivation Functions之一来生成密钥

fernet提供的功能之一是“基于口令的密钥导出功能2”。在Using Passwords with Fernet上可以找到一个使用PBKDF2HMAC的示例。在git issue #1333 of pyca/cryptography中对此进行了讨论,maebert指出,该示例使用salt=os.urandom(16),并将在每次使用不同的Salt值构造KDF类时从密码生成一个新密钥。

如果需要使用自定义密钥派生函数,请查看kdfpbkdf2的源代码,以获得实现KeyDerivationFunction接口的类的示例。

匹配其签名并实现接口的类应该能够作为自定义密钥派生函数插入。

票数 5
EN

Stack Overflow用户

发布于 2017-06-14 00:37:44

该实现展示了如何做到这一点:

代码语言:javascript
运行
复制
return base64.urlsafe_b64encode(os.urandom(32))

因此,要生成自己的随机字节,您需要生成32加密安全的随机字节,然后对它们进行urlsafe base64编码。当然,由于generate_key已经这样做了,所以您可能应该直接调用它,除非您需要在Python进程之外生成密钥。

票数 16
EN

Stack Overflow用户

发布于 2018-05-29 10:14:11

在Bash中,您可以执行以下操作:

代码语言:javascript
运行
复制
dd if=/dev/urandom bs=32 count=1 2>/dev/null | openssl base64

来源:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44432945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档