高速随机字符串生成工具

本文介绍了使用Python标准库secrets生成随机字符串的方法,包括字节字符串、十六进制文本和URL安全字符串。并通过性能测试对比了secrets与传统方法的速度,强调secrets在保证安全性的前提下提高了生成速度。
摘要由CSDN通过智能技术生成

高速随机字符串生成工具

上测试

import time
import string
import random
import secrets


strat1=time.perf_counter()

#chat-gpt 3.5 4k生成的 ID生成 工件
def make_id():
    characters = string.ascii_letters + string.digits
    code = ''.join(random.choice(characters) for _ in range(8))
    return code

for i in range(1,501,1):
    print(make_id())


end1=time.perf_counter()
runtime1=end1-strat1
runt_ms1=runtime1*1000


strat2=time.perf_counter()

#secrets 工具
def make_id():
    return secrets.token_urlsafe(6)

for i in range(1,501,1):
    print(make_id())


end2=time.perf_counter()
runtime2=end2-strat2
runt_ms2=runtime2*1000

print('runt_ms:',runt_ms1)
print('runt_ms:',runt_ms2)

InsCode结果1:
runt_ms: 2.6389658451080322
runt_ms: 1.7378749325871468
占比:65.8543928%
InsCode结果2:
runt_ms: 2.563776448369026
runt_ms: 1.7530238255858421
占比:68.3766257%
InsCode结果3:
runt_ms: 2.6287315413355827
runt_ms: 1.7277728766202927
占比:65.7264863%
博主测试1:
runt_ms: 45.988599995325785
runt_ms: 38.23320000083186
占比:83.1362555%
博主测试2:
runt_ms: 51.702999997360166
runt_ms: 45.61900000408059
占比:88.2327911%

使用

使用方式:【Python标准库】用了Secrets,再也不用担心密码泄露

secrets中主要有三个函数,分别用于生成随机字节字符串、十六进制文本字符串以及URL随机字符串,其使用方法如下,输入参数为字符串长度。

>>> from secrets import *
>>> token_bytes(16)
b't\x98\x00\x86\xfa:\xdeV(E\xb0\x82\x96\x80T\xb3'
>>> token_hex(16)
'1b65dcaf5f1e9bd96fa8639b966d7cde'
>>> token_urlsafe(16)
'8EgjGpnKISzTM2WgPYk4tQ'

当然,除了这三个主要函数之外,secrets也具备基本的随机数功能,即

  • choice(lst) 从lst中挑选出一个元素返回
  • randbelow(n) 生成小于n的自然数
  • randbits(n) 生成不超过n位bit的随机整数
>>> choice([1,2,3])
1
>>> randbelow(5)
3
>>> randbits(5)
10
  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值