案列密码生成器

    密码生成器
        -随机密码
        -定向生成       
        -加盐      用一定的算法,会存在破解的可能,加盐混淆
        -直接复制       不需要显示在终端,便于保护,直接粘贴过去

简单脚本随机生成

import random, string

count = 8
str_from = string.ascii_letters + string.digits
''.join([random.choice(str_from) for _ in range(count)])

# 函数式生成
import random, string

def random_pwd(count):
    str_from = string.ascii_letters + string.digits
    return ''.join([random.choice(str_from) for _ in range(count)])

print(random_pwd(5))
print(random_pwd(7))

base64 加密

知识点:
  base64: 是一种加密算法,支持多种加密,解密。 所需要的参数 为bytes类型(s.encode('utf-8'))
  encode: 加密。 人   -》 机器 机器看的懂
  decode: 解密。 机器  -》 人 人看的懂

第一版本:

# 第一版本
import base64

def custom_pwd(count=8):
    '生成自定义密码,长度为count'
    orgin_pwd = input('请输入初始密码') # 空格也可以当密码
    new_pwd = base64.b64encode(orgin_pwd.encode('utf-8'))
    new_pwd = new_pwd.decode('utf-8')
    if len(new_pwd) < 8:
        new_pwd = new_pwd.ljust(8,'a')

    return new_pwd[:8]
print(custom_pwd())

第二版本:多参数

import base64

def custom_pwd(orgin_pwd,count=8):
    '生成自定义密码,orgin_pwd为明文密码,str格式。长度为count'
    new_pwd = base64.b64encode(orgin_pwd.encode('utf-8'))
    new_pwd = new_pwd.decode('utf-8')
    if len(new_pwd) < 8:
        new_pwd = new_pwd.ljust(8,'a')

    return new_pwd[:count]
print(custom_pwd('louhui',8))

第三版本:加盐

import base64

def custom_pwd(orgin_pwd, salt='louhui', count=8,offset=3):
    '生成自定义密码,orgin_pwd为明文密码,str格式。长度为count'
    print('Before salt', orgin_pwd)
    new_pwd = base64.b64encode((orgin_pwd+salt).encode('utf-8'))
    new_pwd = new_pwd.decode('utf-8')
    print('After salt', new_pwd)
    
    if len(new_pwd) < count:
        new_pwd = new_pwd.ljust(count, 'a')

    return new_pwd[offset:count+offset]

print(custom_pwd('louhu1'))

究极版本:直接赋值到剪切板

mport pyperclip # 第三方库,有一个复制的方法
import base64

def custom_pwd(orgin_pwd, salt='louhui', count=8, offset=3):
    '生成自定义密码,orgin_pwd为明文密码,str格式。长度为count,输出结果直接到内存'
    print('Before salt', orgin_pwd)
    new_pwd = base64.b64encode((orgin_pwd+salt).encode('utf-8'))
    new_pwd = new_pwd.decode('utf-8')
    print('After salt', new_pwd)
    
    if len(new_pwd) < count:
        new_pwd = new_pwd.ljust(count, 'a')

    pyperclip.copy(new_pwd[offset:count+offset])

    return 'ok,找个地方粘贴密码去吧!'

print(custom_pwd('louhui'))
 

猜你喜欢

转载自www.cnblogs.com/louhui/p/8955159.html