简易密码生成器

为了管理自己平时各种各样的账号密码,我使用了一个加密了的 xlsx 文件来记录,同时使用了密码生成规则。为了方便生成密码,使用 python 写了一个小工具。

由于代码比较简单,因此不做过多说明,仅做记录。

密码生成规则

对于一些比较重要的账号,比如 QQ,密码采用随机字符串,再记住,这样的字符串是没有规律的。

对于一些不太重要的账号,就使用对应的网站变量进行偏移。

代码

导入模块

1
2
import random
import clipboard

生成随机密码

1
2
3
4
5
6
7
8
9
10
11
def generate_random(length, alphabeta=None):
'''
生成指定长度的随机密码
'''
length = int(length)
if alphabeta == None:
alphabeta = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' # 字母表
password = ''
for i in range(0, length):
password += random.choice(alphabeta)
return password

生成偏移密码

1
2
3
4
5
6
7
8
9
10
11
12
13
def generate_offset(raw_password, offset, alphabeta=None):
'''
将原始密码进行偏移
'''
offset = int(offset)
if alphabeta == None:
alphabeta = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' # 字母表
password = ''
for character in raw_password:
index = alphabeta.index(character) # 获取原本的索引
new_index = (index+offset) % len(alphabeta) # 获取偏移后的索引
password += alphabeta[new_index]
return password

主函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if __name__ == '__main__':
print('q退出')
print('random 生成随机密码')
print('offset 生成偏移密码')
cmd = input('>')
while cmd != 'q' and cmd != 'Q':
password = ''

if cmd == 'random':
length = input('请输入密码长度:')
password = generate_random(length)
clipboard.copy(password)
print('密码已复制到剪切板:\n',password)
elif cmd == 'offset':
raw_password = input('请输入原始密码:')
offset = input('请输入偏移量:')
password = generate_offset(raw_password, offset)
clipboard.copy(password)
print('密码已复制到剪切板:\n',password)
else:
print('请输入正确的指令')
print('q退出')
print('random 生成随机密码')
print('offset 生成偏移密码')

cmd = input('>')
作者

憧憬少

发布于

2019-08-06

更新于

2019-08-06

许可协议