# -*- coding=utf8 -*-
import os
import base64
import random
import time
import hashlib
# 方法一
tmp = os.urandom(44)
secret_key = base64.b64encode(tmp)
print(secret_key)
# 方法二
def get_random_secret_key(length=12, allowed_chars=None, secret_key=None):
"""
生成随机字符串
:param length: 随机字符串长度
:param allowed_chars: 随机字符串字符取值范围
:param secret_key: 生成随机字符串的随机字符串
:return:
"""
if secret_key is None:
secret_key = "n&^-9#k*-6pwzsjt-qsc@s3$l46k(7e%f80e7gx^f#vouf3yvz"
if allowed_chars is None:
allowed_chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'
random.seed(
hashlib.sha256(
("%s%s%s" % (
random.getstate(),
time.time(),
secret_key)).encode('utf-8')
).digest())
ret = ''.join(random.choice(allowed_chars) for i in range(length))
return ret
a = get_random_secret_key(50)
print(a)
执行结果:
secret_key: b'wZ9mAQgA2oaGn94z85uJXalvNPXmzTArP6lD0ZQOdj5ql0uoi0DLTryTCcI='
secret_key1: 9+a1^6-eti2@20zdj@vyr5r_pbaku#@@73n(e7^j0^)+um)t&)
本文介绍了如何在Python中生成安全的随机字符串,特别适用于设置如SECRET_KEY等重要的安全密钥。通过示例代码,展示了如何利用Python的内置库生成特定长度且难以预测的字符串。
3985

被折叠的 条评论
为什么被折叠?



