首页 > 解决方案 > 使用 python 和 ascii 值创建随机密码

问题描述

我想创建一个程序,告诉你一个随机密码并检查密码的有效性我创建了一个 33-126 的随机值(这是从键盘输出的 ascii 值),然后将其附加到密码并检查有效性。但它正在超时并且没有给出输出。当我调试它时,我看到它随机停止在一个随机点。密码采用列表形式,以使我的工作更轻松。我检查了密码的有效性列表(密码)是例如-password = ['2', 'f', 'W', '@', '/']

你可以看到密码 [0] 是 '2' 而不是 2 所以我创建了检查int type所以它卡在那里


def makePassword():
    password = []
    for _ in range(1, random.randint(5, 21)):
        rm = random.randint(33, 126)
        ascii_value = chr(rm)
        password.append(ascii_value)
    return password


def isalnum(password):
    password = list(password)
    index = random.randint(0, len(password))
    skw = chr(random.choice([random.randint(48, 57), random.randint(65, 90), random.randint(97, 122)]))
    for i in password:
        if not i.isalnum():
            password.insert(index, skw)
    return password


def isalpha(password):
    password = list(password)
    index = random.randint(0, len(password))
    skw = chr(random.choice([random.randint(65, 90), random.randint(97, 122)]))
    for i in password:
        if not i.isalpha():
            password.insert(index, skw)
    return password


def isdigit(password):
    password = list(password)
    index = random.randint(0, len(password))
    skw = chr(random.randint(48, 57))
    for i in password:
        if not i.isdigit():
            password.insert(index, skw)
    return password


def isupper(password):
    password = list(password)
    index = random.randint(0, len(password))
    skw = chr(random.randint(65, 90))
    for i in password:
        if not i.isupper():
            password.insert(index, skw)
    return password


def islower(password):
    password = list(password)
    index = random.randint(0, len(password))
    skw = chr(random.randint(97, 122))
    for i in password:
        if not i.isalnum():
            password.insert(index, skw)
    return password


word = makePassword()
for i in word:
    if not i.isalnum():
        word = isalnum(word)
    if not i.isalpha():
        word = isalpha(word)
    if not i.isdigit():
        word = isdigit(word)
    if not i.isupper():
        word = isupper(word)
    if not i.lower():
        word = islower(word)
print(word)```

标签: python

解决方案


推荐阅读