Python版的迷你程序——随机密码生成器

        最近接触了些破译方面的东东,主要是加密和解密的一些算法和流程。对于暴力破解的手段,密码字典也是个挺关键的步骤呢。下面学习个密码生成器的python代码。

基于库函数的密码产生

        使用 Python 库函数string和random:

  • string.ascii_lowercase小写字母abcdefghijklmnopqrstuvwxyz;
  • string.ascii_uppercase大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ;
  • string.ascii_letters描述ascii_lowercase 和 ascii_uppercase的串联;
  • string.digits字符串0123456789;
  • string.punctuation在 C 语言环境中被视为标点字符的 ASCII 字符字符串: !"#$%&'()*+,-./:;<=>?@[\]^_{|}~。
import random
import string

length       = random.randint(8,13)
password     = string.ascii_letters + string.digits + string.punctuation
gen_password = "".join(random.sample(password, length))

print(password)
print(length)
print(gen_password

自定义的密码产生

        字母+数字+特殊符号,长度自定义,后续可以试试仅允许字母开头的。

import random
import math

alpha   = "abcdefghijklmnopqrstuvwxyz"
num     = "0123456789"
special = ".@#$%&*"

#pass_len = int(input("Enter Password Length: "))
pass_len=random.randint(8,13)

# length of password  5:3:2
alpha_len   = pass_len//2
num_len     = math.ceil(pass_len*30/100)
special_len = pass_len-(alpha_len+num_len)

password = []

def generate_pass(length, array, is_alpha=False):
    for i in range(length):
        index = random.randint(0, len(array) - 1)
        character = array[index]

        if is_alpha:
            case = random.randint(0, 1)
            if case == 1:
                character = character.upper()

        password.append(character)


generate_pass(alpha_len, alpha, True)
generate_pass(num_len, num)
generate_pass(special_len, special)

random.shuffle(password)

# convert List To string
gen_password = ""
for i in password:
    gen_password = gen_password + str(i)

print(pass_len)
print(password)
print(gen_password)

Python版的迷你程序——随机密码生成器_第1张图片

 

 

你可能感兴趣的:(source,code,Python,python,密码产生)