Hel*_*nar 4 python security promotions
通过使用python语言,什么是生成促销代码的聪明/有效方式.喜欢用于生成折扣券的特殊号码.像:1027828-1
谢谢
以下不是特别pythonic或特别有效,但它可能就足够了:
import random
def get_promo_code(num_chars):
code_chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
code = ''
for i in range(0, num_chars):
slice_start = random.randint(0, len(code_chars) - 1)
code += code_chars[slice_start: slice_start + 1]
return code
Run Code Online (Sandbox Code Playgroud)
1027828-1非常小.攻击者只需使用几行代码就可以进行大约百万次猜测,可能需要几天时间.
这是使用python生成难以预测的数字的好方法,它可以在linux和windows下运行.它是base64'用于二进制安全,取决于你正在做什么你可能想要urllib.urlencode()但我会避免base10因为它不存储尽可能多的信息.
import os
import base64
def secure_rand(len=8):
token=os.urandom(len)
return base64.b64encode(token)
print(secure_rand())
Run Code Online (Sandbox Code Playgroud)
作为旁注,这是生成一个完整的字节,即base256.256 ^ 8是18446744073709551616,它应该足够大.