Python预估破译密码所需时间
2021/6/3 14:24:00
本文主要是介绍Python预估破译密码所需时间,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
密码长度、组成不同时,破译密码需要的时间也不同
用python判断一下破解该密码需要多长时间
# # 判断破译密码所需要的时间,对着理论表格敲代码就行了。 import re password = input() length = len(password) alpha = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM' num = '0123456789' char = '~!@#$%^&*()_+{}|":?><`,./;[]\=-?\'' # # 最开始设置含有字母、数字、字符为False contain_alpha = False contain_num = False contain_char = False # # local = bool(re.findall(password, alpha)) # # 找到返回True,没找到返回False # # print(local) if length < 3 and length > 0: print('破译密码需要: 0.001秒') elif length == 3: print('破译密码需要: 0.001秒') elif length == 4: print('破译密码需要: 0.001秒') elif length == 5: if password.isnumeric(): print('破译密码需要: 0.001秒') if password.isalpha(): print('破译密码需要: 0.001秒') else: # # 判断密码中的每一位,密码不长,时间复杂度可以接受,找到了设置相应的包含字母、数字、符号为True即可 for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 3秒') if contain_alpha and contain_num and contain_char: print('破译密码需要: 10秒') elif length == 6: if password.isnumeric(): print('破译密码需要: 0.001秒') if password.isalpha(): print('破译密码需要: 8秒') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 3分钟') if contain_alpha and contain_num and contain_char: print('破译密码需要: 13分钟') elif length == 7: if password.isnumeric(): print('破译密码需要: 0.001秒') if password.isalpha(): print('破译密码需要: 5分钟') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 3小时') if contain_alpha and contain_num and contain_char: print('破译密码需要: 17小时') elif length == 8: if password.isnumeric(): print('破译密码需要: 0.001秒') if password.isalpha(): print('破译密码需要: 3小时') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 10天') if contain_alpha and contain_num and contain_char: print('破译密码需要: 57天') elif length == 9: if password.isnumeric(): print('破译密码需要: 4秒') if password.isalpha(): print('破译密码需要: 4天') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 153天') if contain_alpha and contain_num and contain_char: print('破译密码需要: 12年') elif length == 10: if password.isnumeric(): print('破译密码需要: 40秒') if password.isalpha(): print('破译密码需要: 169天') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 1年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 928年') elif length == 11: if password.isnumeric(): print('破译密码需要: 6分钟') if password.isalpha(): print('破译密码需要: 16年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 106年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 7万1千年') elif length == 12: if password.isnumeric(): print('破译密码需要: 1小时') if password.isalpha(): print('破译密码需要: 600年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 6千年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 5百万年') elif length == 13: if password.isnumeric(): print('破译密码需要: 11小时') if password.isalpha(): print('破译密码需要: 2万1千年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 10万8千年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 4亿2千3百万年') elif length == 14: if password.isnumeric(): print('破译密码需要: 4天') if password.isalpha(): print('破译密码需要: 77万8千年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 2千5百万年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 50亿年') elif length == 15: if password.isnumeric(): print('破译密码需要: 46天') if password.isalpha(): print('破译密码需要: 2千8百万年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 10亿年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 2万亿年') elif length == 16: if password.isnumeric(): print('破译密码需要: 1年') if password.isalpha(): print('破译密码需要: 10亿年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 9百7十亿年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 193万亿年') elif length == 17: if password.isnumeric(): print('破译密码需要: 12年') if password.isalpha(): print('破译密码需要: 360亿年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 6万亿年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 约无穷年') elif length == 18: if password.isnumeric(): print('破译密码需要: 126年') if password.isalpha(): print('破译密码需要: 1万亿年') else: for i in password: if bool(re.findall(i, alpha)): contain_alpha = True if bool(re.findall(i, num)): contain_num = True if bool(re.findall(i, char)): contain_char = True if contain_alpha and contain_num and not contain_char: # # 密码仅包含数字字母 print('破译密码需要: 374万亿年') if contain_alpha and contain_num and contain_char: print('破译密码需要: 约无穷年')
随笔记录
侵删
这篇关于Python预估破译密码所需时间的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python