发布于 5年前

Python 3.6随机生成由字母和数字组成的字符串

在Python 3.6可以分为伪随机和安全随机来随机产生字符串。

伪随机

Python 3.6 新增了random.choices(),用于随机抽取字符。

Python 3.6

''.join(random.choices(string.ascii_lowercase + string.ascii_uppercase + string.digits, k=N))

Python 3.6之前的版本

''.join(random.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits) for _ in range(N))

安全随机

random.choice和random.choices使用的是伪随机。如果要安全性高的随机,可以使用Python 3.6新增的secrets

''.join(secrets.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits) for _ in range(N))

Python 3.6之前的版本使用random.SystemRandom()

''.join(random.SystemRandom().choice(string.ascii_lowercase + string.ascii_uppercase + string.digits) for _ in range(N))
©2020 edoou.com   京ICP备16001874号-3