網站首頁 編程語言 正文
代碼示例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("輸入密碼長度"))
# 設置密碼長度組成格式,字母數字和特殊符號占比,以下示例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)
# 數字
generate_pass(num_len, num)
# 特殊符號
generate_pass(special_len, special)
# 打亂順序
random.shuffle(password)
# 轉列表到字符串
gen_password = ""
for i in password:
gen_password = gen_password + str(i)
print(gen_password)
知識補充
除了上面的兩個示例代碼,小編還為大家整理了一些Python實現生成隨機密碼的方法,希望對大家有所幫助
python實現生成隨機 字母 + 數字密碼
#coding:utf-8
import random,string
def GetPassword(length):
# 隨機生成數字個數
Ofnum=random.randint(1,length)
Ofletter=length-Ofnum
# 選中ofnum個數字
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)
# 生成隨機密碼
getPwd=''.join([i for i in slcChar])
return getPwd
if __name__=='__main__':
print( GetPassword(6)) #GetPassword()自定義隨機密碼長度
Python隨機生成帶特殊字符的密碼
#!/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
相關推薦
- 2022-09-05 Shiro 和 Spring Security 的比較
- 2022-12-24 Docker中redis安裝及測試教程_docker
- 2022-05-22 python_tkinter彈出對話框創建_python
- 2022-12-16 python實例方法的使用注意及代碼實例_python
- 2022-05-13 分布式架構Redis中有哪些數據結構及底層實現原理_Redis
- 2022-12-07 C++11?成員函數作為回調函數的使用方式_C 語言
- 2022-06-19 Python?matplotlib實現條形統計圖_python
- 2022-09-18 詳解React?hooks組件通信方法_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支