python-随机字符串生成器\u帮助_

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

这是一个愚蠢的问题。。。老实说,我现在真的一点头绪都没有,而且我对python非常熟悉

我目前正在用python脚本生成随机密码。我从“Omid Raha”的例子中找到了一个好的开始

编辑:在回顾中,这个例子对于执行相同任务的简单方法来说非常复杂…

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谢谢:)这对以后的工作非常有帮助