1. 使用`random`模块:
import random
import string
def generate_password(length):
chars = string.ascii_letters + string.digits + string.punctuation
password = ''.join(random.choice(chars) for _ in range(length))
return password
length = int(input("请输入密码长度: "))
password = generate_password(length)
print("随机密码为: ", password)
2. 使用`secrets`模块:
import secrets
import string
def generate_password(length=12):
alphabet = string.ascii_letters + string.digits + string.punctuation
password = ''.join(secrets.choice(alphabet) for _ in range(length))
return password
password = generate_password()
print(password)
3. 使用`random.sample`函数:
import random
def random_password(length=8):
list1 = [chr(i) for i in range(65,90)] + [chr(i) for i in range(97,122)]
list2 = [str(i) for i in range(10)]
all_chars = list1 + list2
while True:
password = ''.join(random.sample(all_chars, length))
if len(password) == length:
break
return password
print("随机密码为: ", random_password())
4. 使用`timeit`模块进行性能测试:
import random
import string
import timeit
def generate_password_way1(length):
chars = string.ascii_letters + string.digits + string.punctuation
password = ''.join(random.sample(chars, length))
return password
def generate_password_way2(length):
chars = string.ascii_letters + string.digits + string.punctuation
password = ''.join(random.choice(chars) for _ in range(length))
return password
测试两种方法生成密码的性能
time_way1 = timeit.timeit(lambda: generate_password_way1(100), number=)
time_way2 = timeit.timeit(lambda: generate_password_way2(100), number=)
print("方法1耗时: ", time_way1)
print("方法2耗时: ", time_way2)
你可以根据需要选择合适的方法来生成密码,并且可以通过修改字符集合和密码长度来生成不同类型的密码。如果你需要更复杂的密码,比如包含特殊字符或者数字和字母的混合,可以调整`string.punctuation`和`string.ascii_letters`、`string.digits`来包含你想要的字符集。