{site_name}

{site_name}

🌜 搜索

Pythonsecrets 是 Python 标准库中的一个模块,用于生成和管理密码、令牌等敏感信息

Python 𝄐 0
python secrets库,python secrets随机数生成原理
Pythonsecrets 是 Python 标准库中的一个模块,用于生成和管理密码、令牌等敏感信息。它可以帮助开发者在代码中安全地存储这些信息,而不必将其明文写入代码或配置文件中。

Pythonsecrets 模块提供了以下功能:

1. 生成随机密码或令牌
2. 将密码或令牌加密并保存到文件中
3. 从文件中读取加密的密码或令牌并解密

以下是使用 Pythonsecrets 模块生成随机密码的示例代码:

python
import secrets

password = secrets.token_hex(16)
print(password)


该代码将生成一个长度为 16 的随机十六进制字符串作为密码。可以根据需要更改密码长度,并使用其他函数生成其他类型的随机字符串。

下面是将密码加密并保存到文件中的示例代码:

python
import secrets
import nacl.secret
import nacl.utils


def encrypt_password():
password = secrets.token_bytes(32)
box = nacl.secret.SecretBox(nacl.utils.random(nacl.secret.SecretBox.KEY_SIZE))
encrypted_password = box.encrypt(password)
with open('password.txt', 'wb') as f:
f.write(encrypted_password)


if __name__ == '__main__':
encrypt_password()


该代码将生成一个随机的 32 字节密码,使用 NaCl 库中的 SecretBox 对其进行加密,并将加密后的密码写入名为 password.txt 的文件中。

最后,以下是从文件中读取加密的密码并解密的示例代码:

python
import nacl.secret


def decrypt_password():
with open('password.txt', 'rb') as f:
encrypted_password = f.read()
box = nacl.secret.SecretBox(KEY)
decrypted_password = box.decrypt(encrypted_password)
print(decrypted_password)


if __name__ == '__main__':
KEY = b'0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef'
decrypt_password()


该代码将从名为 password.txt 的文件中读取加密的密码,使用预先定义的密钥解密它,并打印出原始密码。注意,这里的密钥需要和加密时使用的密钥相同才能正确解密密码。