【问题标题】:How can I generate my own Fernet key in Python?如何在 Python 中生成我自己的 Fernet 密钥?
【发布时间】:2022-11-16 22:21:14
【问题描述】:

我试过这样的东西,但它似乎没有用:

from cryptography.fernet import Fernet
from base64 import urlsafe_b64encode as b64e
    bytes_gen = b64e(PASSWORD.encode())
    if len(bytes_gen) < 32:
        bytes_gen += b'=' * (32 - len(bytes_gen))
    elif len(bytes_gen) > 32:
        bytes_gen = bytes_gen[:32]
    print(bytes_gen, len(bytes_gen))
    f = Fernet(bytes_gen)

终端:

ValueError: Fernet key must be 32 url-safe base64-encoded bytes.

【问题讨论】:

    标签: python cryptography byte valueerror fernet


    【解决方案1】:

    你可以尝试这样的事情:

    import base64
    import os
    from cryptography.fernet import Fernet
    from cryptography.hazmat.primitives import hashes
    from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
    salt = os.urandom(16)
    LENGTH = 32
    password = b"your_password"
    kdf = PBKDF2HMAC(
        algorithm=hashes.SHA256(),
        length=LENGTH,
        salt=os.urandom(16),
        iterations=10000,
    )
    key = base64.urlsafe_b64encode(kdf.derive(password))
    f = Fernet(key)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      相关资源
      最近更新 更多