首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用Fernet时检查密钥是否已加密

如何在使用Fernet时检查密钥是否已加密
EN

Stack Overflow用户
提问于 2020-04-10 17:02:28
回答 1查看 499关注 0票数 0

我正在尝试使用python脚本加密我的环境文件中的合理值。我正在使用Fernet。我只想加密那些尚未加密的值,确保没有任何多级加密。

在这种情况下,我如何知道某个值已经被加密或解密?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-13 03:10:22

只需尝试使用TTL为None (默认值)进行解密。如果它成功了,那么你不需要做更多的事情。如果失败,将引发InvalidToken异常,您可以捕获该异常。在except块中,您可以加密文件,如下面的示例所示:

代码语言:javascript
复制
import base64
from pathlib import Path

from cryptography.fernet import Fernet, InvalidToken

key = Fernet.generate_key()
f = Fernet(key)
encrypted = f.encrypt(b'Hello world')

p1, p2 = Path('file1'), Path('file2')
p1.write_bytes(encrypted)
p2.write_bytes(base64.urlsafe_b64encode(b'\x80not encrypted'))

for example in (p1, p2):
    try:
        data = example.read_bytes()
        f.decrypt(data, None)
    except InvalidToken:
        example.write_bytes(f.encrypt(data))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61137072

复制
相关文章

相似问题

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