为了管理自己平时各种各样的账号密码,我使用了一个加密了的 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('>')
|