網(wǎng)站首頁 編程語言 正文
代碼示例1(8位)
import random
import string
total = string.ascii_letters + string.digits + string.punctuation
length = 8
password = "".join(random.sample(total, length))
print(password)
代碼示例2(任意)
import random
import math
alpha = "abcdefghijklmnopqrstuvwxyz"
num = "0123456789"
special = "@#$%&*"
# 輸入密碼長度
pass_len = int(input("輸入密碼長度"))
# 設(shè)置密碼長度組成格式,字母數(shù)字和特殊符號占比,以下示例50-30-20比例分配
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)
# 數(shù)字
generate_pass(num_len, num)
# 特殊符號
generate_pass(special_len, special)
# 打亂順序
random.shuffle(password)
# 轉(zhuǎn)列表到字符串
gen_password = ""
for i in password:
gen_password = gen_password + str(i)
print(gen_password)
知識補(bǔ)充
除了上面的兩個示例代碼,小編還為大家整理了一些Python實現(xiàn)生成隨機(jī)密碼的方法,希望對大家有所幫助
python實現(xiàn)生成隨機(jī) 字母 + 數(shù)字密碼
#coding:utf-8
import random,string
def GetPassword(length):
# 隨機(jī)生成數(shù)字個數(shù)
Ofnum=random.randint(1,length)
Ofletter=length-Ofnum
# 選中ofnum個數(shù)字
slcNum=[random.choice(string.digits) for i in range(Ofnum)]
# 選中ofletter個字母
slcLetter=[random.choice(string.ascii_letters) for i in range(Ofletter)]
# 打亂組合
slcChar=slcLetter+slcNum
random.shuffle(slcChar)
# 生成隨機(jī)密碼
getPwd=''.join([i for i in slcChar])
return getPwd
if __name__=='__main__':
print( GetPassword(6)) #GetPassword()自定義隨機(jī)密碼長度
Python隨機(jī)生成帶特殊字符的密碼
#!/usr/bin/env python
import string
from itertools import chain
from random import choice, sample
def mkpasswd(length=12, digits=4, upper=3, lower=3):
lowercase = string.lowercase
uppercase = string.uppercase
salt = '!@#$%^&*()><?'
password = list(
chain(
(choice(uppercase) for _ in range(upper)),
(choice(lowercase) for _ in range(lower)),
(choice(string.digits) for _ in range(digits)),
(choice(salt) for _ in range((length - digits - upper - lower)))
)
)
return "".join(sample(password, len(password)))
if __name__ == '__main__':
print mkpasswd()
#!/usr/bin/env python
import string
from itertools import chain
from random import choice, sample
def mkpasswd(length=12, digits=4, upper=3, lower=3):
lowercase = string.lowercase
uppercase = string.uppercase
salt = '!@#$%^&*()><?'
password = list(
chain(
(choice(uppercase) for _ in range(upper)),
(choice(lowercase) for _ in range(lower)),
(choice(string.digits) for _ in range(digits)),
(choice(salt) for _ in range((length - digits - upper - lower)))
)
)
return "".join(sample(password, len(password)))
if __name__ == '__main__':
print mkpasswd()
原文鏈接:https://blog.csdn.net/qq_42034590/article/details/128994108
相關(guān)推薦
- 2022-04-20 Appium自動化測試中獲取Toast信息操作_python
- 2022-12-06 Python實現(xiàn)批量修改xml文件的腳本_python
- 2022-11-17 Python操作MongoDB的教程詳解(插,查,改,排,刪)_python
- 2024-02-16 springmvc中的數(shù)據(jù)提交方式
- 2023-04-02 GoLang函數(shù)棧的使用詳細(xì)講解_Golang
- 2022-05-06 Python學(xué)習(xí)之循環(huán)方法詳解_python
- 2022-10-07 C語言直接選擇排序算法詳解_C 語言
- 2022-04-09 SpringBoot默認(rèn)日志框架(slf4j)的使用以及配置文件
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支