python-随机字符串生成器\u帮助_
这是一个愚蠢的问题。。。老实说,我现在真的一点头绪都没有,而且我对python非常熟悉 我目前正在用python脚本生成随机密码。我从“Omid Raha”的例子中找到了一个好的开始 编辑:在回顾中,这个例子对于执行相同任务的简单方法来说非常复杂…python-随机字符串生成器\u帮助_,python,function,random,printing,Python,Function,Random,Printing,这是一个愚蠢的问题。。。老实说,我现在真的一点头绪都没有,而且我对python非常熟悉 我目前正在用python脚本生成随机密码。我从“Omid Raha”的例子中找到了一个好的开始 编辑:在回顾中,这个例子对于执行相同任务的简单方法来说非常复杂… import random import hashlib import time """ This script is adapted from an example found here:https://stackoverflow.com/que
import random
import hashlib
import time
"""
This script is adapted from an example found here:https://stackoverflow.com/questions/18319101/whats-the-best-way-to-generate-random-strings-of-a-specific-length-in-python ; originally provided by user 'Omid Raha'
"""
SECRET_KEY = 'ffdsat9asdf5o5u9HKHvurtiasdf1tg1V36jyasdfSv8Ppin9O'
try:
random = random.SystemRandom()
using_sysrandom = True
except NotImplementedError:
import warnings
warnings.warn('A secure pseudo-random number generator is not available '
'on your system. Falling back to Mersenne Twister.')
using_sysrandom = False
def get_random_string(length=12,
allowed_chars='abcdefghijklmnopqrstuvwxyz'
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
'%*/-_@'):
"""
Returns a securely generated random string.
The default length of 12 with the a-z, A-Z, 0-9 character set returns
a 71-bit value. log_2((26+26+10)^12) =~ 71 bits
"""
if not using_sysrandom:
# This is ugly, and a hack, but it makes things better than
# the alternative of predictability. This re-seeds the PRNG
# using a value that is hard for an attacker to predict, every
# time a random string is required. This may change the
# properties of the chosen random sequence slightly, but this
# is better than absolute predictability.
random.seed(
hashlib.sha256(
("%s%s%s" % (
random.getstate(),
time.time(),
SECRET_KEY)).encode('utf-8')
).digest())
return ''.join(random.choice(allowed_chars) for i in range(length))
print (get_random_string)
只返回:
我不知道这意味着什么。。。或者我是否正确地执行了脚本
编辑:
谢谢您阅读跌跌撞撞地走着。。。我们发现:
from OpenSSL import rand
p = rand.seed("lolNOmoreBADpasswds12")
print(p)
即:
另一方面:
from OpenSSL import rand
p = rand.bytes("12")
print(p)
现在玩这样那样的东西<代码>:)
编辑:以上所有方法
鉴于:
让我们考虑这是一个最好的路径前进(对于随机密码生成器,它是值得记忆的)<强> >因为你有一个包含所有字符串的文件,你想包括>:/P>
import random, string, os
word_file = "./wordlist"
words = open(word_file).read().splitlines()
part1 = random.choice(words)
part2 = random.choice(words)
part3 = random.choice(words)
part4 = random.choice(words)
phrase = part1.capitalize()+part2+part3.capitalize()+part4
print phrase
蹒跚前行。。。我们发现:
from OpenSSL import rand
p = rand.seed("lolNOmoreBADpasswds12")
print(p)
即:
另一方面:
from OpenSSL import rand
p = rand.bytes("12")
print(p)
现在玩这样那样的东西<代码>:)
编辑:以上所有方法
鉴于:
让我们考虑这是一个最好的路径前进(对于随机密码生成器,它是值得记忆的)<强> >因为你有一个包含所有字符串的文件,你想包括>:/P>
import random, string, os
word_file = "./wordlist"
words = open(word_file).read().splitlines()
part1 = random.choice(words)
part2 = random.choice(words)
part3 = random.choice(words)
part4 = random.choice(words)
phrase = part1.capitalize()+part2+part3.capitalize()+part4
print phrase
我知道的最简单的随机字符串生成器:
import random, string;
all_chars = string.ascii_lowercase
def randstr(length):
result = str()
for i in range(length):
result += random.choice(all_chars)
return(result)
print(randstr(15))
如果要更改可能的字符数,只需更改all_chars变量:
例如:
如果需要数字和字符:
all_chars = string.ascii_lowercase + string.digits
all_chars = string.ascii_letters + string.digits
对于数字和大小写字符:
all_chars = string.ascii_lowercase + string.digits
all_chars = string.ascii_letters + string.digits
我所知道的最简单的随机字符串生成器:
import random, string;
all_chars = string.ascii_lowercase
def randstr(length):
result = str()
for i in range(length):
result += random.choice(all_chars)
return(result)
print(randstr(15))
如果要更改可能的字符数,只需更改all_chars变量:
例如:
如果需要数字和字符:
all_chars = string.ascii_lowercase + string.digits
all_chars = string.ascii_letters + string.digits
对于数字和大小写字符:
all_chars = string.ascii_lowercase + string.digits
all_chars = string.ascii_letters + string.digits
简单地说,当您要调用函数并打印值时,您正在打印函数的定义。请尝试打印(get_random_string())-函数名后的括号表示您希望实际运行函数,并获取它产生的值。@monkey谢谢:)这对以后的工作非常有帮助。简单地说,您正在打印函数的定义,当您要调用函数并打印值时。请尝试打印(get_random_string())-函数名后的括号表示您希望实际运行该函数,并获取它生成的值。@monkey谢谢:)这对以后的工作非常有帮助