python破解密码·筛查和选择
破解密码时可能遇到的几种情况
① 已知密码字符,破排序
② 已知密码位数,破字符
③ 已知密码类型,破字位
④ 已知部分密码,破未知
⑤ 啥都不知道,盲破,玩完
⑥ 已知位数、字符、类型、部分密码中的几个,已知越多破解越易
① 已知密码字符,破排序
python破解字母已知但大小写未知密码
python穷举已知字符串中某个或多个字符为大写的所有情况,并把生成的所有结果写入result.txt
def generate_uppercase_combinations(s, index=0, current='', output_file='result.txt'):
if index == len(s):
with open(output_file, 'a') as file:
file.write(current + '\n')
return
generate_uppercase_combinations(s, index + 1, current + s[index], output_file)
if s[index].isalpha() and s[index].islower():
generate_uppercase_combinations(s, index + 1, current + s[index].upper(), output_file)
# 测试代码
s = "abc"
with open('result.txt', 'w') as file:
file.write('')
generate_uppercase_combinations(s)
- - - -
后续 python密码筛查和选择
④ 已知部分密码
用于排除,减少可能的密码
在函数中添加一个条件来检查当前字符串是否以’C’结尾,如果是,则不将其写入到文件中。
# 跳过末尾为'C'的情况
def generate_uppercase_combinations(s, index=0, current='', output_file='result.txt'):
if index == len(s):
if current[-1] != 'C': # 检查末尾是否为'C'
with open(output_file, 'a') as file:
file.write(current + '\n')
return
generate_uppercase_combinations(s, index + 1, current + s[index], output_file)
if s[index].isalpha() and s[index].islower():
generate_uppercase_combinations(s, index + 1, current + s[index].upper(), output_file)
# 测试代码
s = "abc"
with open('result.txt', 'w') as file:
file.write('')
generate_uppercase_combinations(s)
s="abcdefgh"已知第3-5位为cde,排除非cde的情况;已知第1-4位不是abdC,排除是abcd的情况;已知第第7-8位是gH,排除非gH的情况。
def generate_uppercase_combinations(s, index=0, current='', output_file='result.txt'):
if index == len(s):
if current[2:5] == 'cde' and current[0:4] != 'abcd' and current[6:8] == 'gH': # 添加条件限制
with open(output_file, 'a') as file:
file.write(current + '\n')
return
generate_uppercase_combinations(s, index + 1, current + s[index], output_file)
if s[index].isalpha() and s[index].islower():
generate_uppercase_combinations(s, index + 1, current + s[index].upper(), output_file)
# 测试代码
s = "abcdefgh"
with open('result.txt', 'w') as file:
file.write('')
generate_uppercase_combinations(s)
在Python中,字符串的索引是从0开始的,current[-1]表示字符串current的末尾位。
因此,在上面代码中:
- current[-1]表示current的末尾位。
- current[7]表示current的第8位的子字符串。
- current[2:5]表示索引2-4,即current的第3位到第5位的子字符串。
- current[0:4]表示索引0-3,即current的第1位到第4位的子字符串。
- current[6:8]表示索引6-7,即current的第7位到第8位的子字符串。
第n位加入特殊符号
. + whitespace etc.
某位有一特殊字符,直接在上述代码的基础上在字符串s相应位置加特殊字符就好了,例如:
def generate_uppercase_combinations(s, index=0, current='', output_file='result.txt'): if index == len(s): with open(output_file, 'a') as file: file.write(current + '\n') return generate_uppercase_combinations(s, index + 1, current + s[index], output_file) if s[index].isalpha() and s[index].islower(): generate_uppercase_combinations(s, index + 1, current + s[index].upper(), output_file) # 测试代码 s = "a b.c" with open('result.txt', 'w') as file: file.write('') generate_uppercase_combinations(s)将全部行的某几位替换为另几位,同特殊字符。
② 已知密码位数,破字符
python穷举已知位数n=3,每位密码位0-9数字或者字母a,b,c的所有情况,并把生成的所有结果写入result.txt
import itertools # 定义可能的字符集 characters = '0123456789abc' # 生成所有可能的密码组合 combinations = itertools.product(characters, repeat=3) # 将结果写入文件 with open('result.txt', 'w') as file: for combination in combinations: password = ''.join(combination) file.write(password + '\n')③ 已知密码类型,破字位
已知是数字型密码,位数未知假设为4位以内。
python穷举已知位数0
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
