栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 生成随机密码 并 将代码生成.exe可执行文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 生成随机密码 并 将代码生成.exe可执行文件

在运维过程中可能会使用随机密码,下面说说用Python来生成指定长度的随机密码。

方法说明: test_pass_generate(int(sys.argv[1]), int(sys.argv[2]))
参数1为生成密码个数
参数2为生成密码长度
另外代码生成的密码不包括数字0,字母O,大小写的L,避免难以分辨。

# coding: utf-8
import random
import string
import sys,os

def generate_random_pass(pass_len=10):
    lowercase = 'abcdefghijkmnpqrstuvwxyz'
    uppercase = 'ABCDEFGHJKLMNPQRSTUVWXYZ'
    digits = '23456789'
    special = '_!@#$%&*'
    PASS_CHARS = lowercase+uppercase+digits+special
    """
    生成指定长度的密码字符串,当密码长度超过3时,密码中至少包含:
    1个大写字母+1个小写字母+1个特殊字符
    :param password_length:密码字符串的长度
    :return:密码字符串
    """
    char_list = [
        random.choice(lowercase),
        random.choice(uppercase),
        random.choice(digits),
        random.choice(special)
    ]
    if pass_len > 4:
        # random.choice 方法返回一个列表,元组或字符串的随机项
        # (x for x in range(N))返回一个Generator对象
        # [x for x in range(N)] 返回List对象
        char_list.extend([random.choice(PASS_CHARS) for _ in range(pass_len - 4)])
    # 使用random.shuffle来将list中元素打乱
    random.shuffle(char_list)
    return ''.join(char_list[0:pass_len])

def test_pass_generate(pass_num,pass_len):
    ls=[]
    for i in range(pass_num):
        random_pass = generate_random_pass(pass_len)
        if random_pass not in ls:
            ls.append(random_pass)
    path=os.path.join(os.path.expanduser('~'),"Desktop",'生成密码.txt')
    f = open(path,'w')
    for i in ls:
        print(i)  #不想写入文件可以直接输出
        f.write(i+'n')
    f.close()
    
test_pass_generate(int(sys.argv[1]), int(sys.argv[2]))

使用方法举例:
生成5个长度为7位的随机密码 ,另外如果在windows上执行,代码同时会在桌面上生成结果文件。如下:

#python genpass.py 5 7
egP4#vQ
zP7J!C$
2c@PKTC
fcB5iT&
Kup7$&Y

将上述代码生成windows 的.exe可执行文件:

将Python文件编译成exe可执行文件,可使用pyinstaller工具或py2exe工具实现。这里使用pyinstaller来说明。

一、使用pip安装pyinstaller模块

pip install pyinstaller

Collecting pyinstaller
Downloading PyInstaller-3.3.tar.gz (3.5MB)
100% |████████████████████████████████| 3.5MB 383kB/s
Requirement already satisfied: setuptools in 
Successfully built pyinstaller pefile future
Installing collected packages: future, pefile, altgraph, macholib, pypiwin32, pyinstaller
Successfully installed altgraph-0.15 future-0.16.0 macholib-1.9 pefile-2017.11.5 pyinstaller-3.3 pypiwin32-220

二、生成exe文件

准备好需要编译成exe的Python文件
在这个Python文件的当前路径执行pyinstaller -F xxx.py(xxx为Python代码文件名)
控制台会打印编译信息,最后会打印编译成功,表示生成exe文件成功

PS C:UserscsitsDesktop> pyinstaller.exe -F .genpass.py
154 INFO: PyInstaller: 4.2
154 INFO: Python: 3.6.3
155 INFO: Platform: Windows-10-10.0.19041-SP0
158 INFO: wrote C:UserscsitsDesktopgenpass.spec
169 INFO: UPX is not available.
14190 INFO: Bootloader c:userscsitsappdatalocalprogramspythonpython36libsite-packagesPyInstallerbootloaderWindows-64bitrun.exe
14190 INFO: checking EXE

14204 INFO: Writing RT_ICON 7 resource with 1128 bytes
14213 INFO: Updating manifest in C:UserscsitsDesktopbuildgenpassrun.exe.b10_rizh
14217 INFO: Updating resource type 24 name 1 language 0
14224 INFO: Appending archive to EXE C:UserscsitsDesktopdistgenpass.exe
14235 INFO: Building EXE from EXE-00.toc completed successfully.

三、当前目录下会多出一个dist目录,此目录下就是Python文件生成的exe可执行文件。使用exe文件加相关参数生成密码:

C:>C:genpass.exe   10 5
Spu&8
B!$u5
3$M6d
*e7hP
iUV7*
Et35$
4P_ax
Yk4!V
n&28U
R2f%h

C:>C:genpass.exe   5 10
fufQuQ7$HP
qDaYjA@u%7
@@mSbdr59E
#h3Kw8&s2b
P6q!3GvQ$L

C:>
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号