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')returngenerate_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')returngenerate_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')returngenerate_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')returngenerate_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<n<5,每位密码位0-9数字的所有情况,并将结果写入到 result.txt文件中

import itertools# 定义可能的字符集
characters = '0123456789'# 生成所有可能的密码组合
with open('result.txt', 'w') as file:for length in range(1, 5):combinations = itertools.product(characters, repeat=length)for combination in combinations:password = ''.join(combination)file.write(password + '\n')

出现非数字,此时加字母
python穷举已知位数0<n<3,每位密码位0-9数字或者a-z字母的所有情况,并将结果写入到 result.txt文件中
只需要更新字符集和位数范围

import itertools# 定义可能的字符集
characters = '0123456789abcdefghijklmnopqrstuvwxyz'# 生成所有可能的密码组合
with open('result.txt', 'w') as file:for length in range(1, 3):combinations = itertools.product(characters, repeat=length)for combination in combinations:password = ''.join(combination)file.write(password + '\n')

出现非字母非数,此时加中文字符串 仍旧更新字符集和位数范围

历史密码规律及可能出现的排列组合

- - - -

密码位数太多了,只能先排除一部分再慢慢猜测😿
在这里插入图片描述

⑤ 密码未知

啥都不知道/记不清了,毁灭吧,26字母+10数字+特殊符号+可能出现的大概率中文字符,更新字符集和位数范围 枚举所有可能排列

import itertools# 定义可能的字符集
characters = '0123456789abcdefghijklmnopqrstuvwxyz .,-·>?<+/#@!~$%^&*():啊我是'# 生成所有可能的密码组合
with open('result.txt', 'w') as file:for length in range(1, 3):combinations = itertools.product(characters, repeat=length)for combination in combinations:password = ''.join(combination)file.write(password + '\n')

此时可能就需要出现tkinter自动输入破解了 or 自动精灵/鼠标精灵

密码记得备份啊,太难追回了,10位数以上的强密码,忘记了让我去猜,我看得懂密码提示也破不了啊😿

相关 Python解压zip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术速递|VS Code Java 6月更新 - 项目设置功能增强!大量 Spring 新特性

作者&#xff1a;Nick Zhu 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎阅读 Visual Studio Code for Java 的六月更新&#xff01;在这篇博客中&#xff0c;我们将分享项目设置项目的重要更新以及一系列 Spring 的功能改进&#xff0c;让我们开始吧&#xff01; 项目设…

如何魔改vnstat-docker项目使其支持每1分钟采样?

文章目录 一、概述二、官网参考1. 官网地址2. 查看打包过程3.打包命令 三、修改过的文件四、部署运行1. 编排文件2. 运行效果 一、概述 接前文 网络流量监控神器vnStat初探 我们已经了解了vnStat的作用、使用和docker部署。 同时也了解到官方版本支持的采样统计间隔最小为5分…

使用tkinter拖入excel文件并显示

使用tkinter拖入excel文件并显示 效果代码 效果 代码 import tkinter as tk from tkinter import ttk from tkinterdnd2 import TkinterDnD, DND_FILES import pandas as pdclass ExcelViewerApp(TkinterDnD.Tk):def __init__(self):super().__init__()self.title("Excel…

C# Bitmap类型与Byte[]类型相互转化详解与示例

文章目录 一、Bitmap类型转Byte[]类型使用Bitmap类的Save方法使用Bitmap类的GetBytes方法 二、Byte[]类型转Bitmap类型使用MemoryStream将Byte[]数组转换为Bitmap对象使用System.Drawing.Imaging.BitmapImage类 总结 在C#编程中&#xff0c;Bitmap类型和Byte[]类型之间的相互转…

Linux:进程间通信(二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)

Linux&#xff1a;进程间通信&#xff08;二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量&#xff09; 上次结束了进程间通信一&#xff1a;Linux&#xff1a;进程间通信&#xff08;一.初识进程间通信、匿名管道与命名管道、共享内存&#xff09; 文章目录 …

C++进阶:继承和多态

文章目录 ❤️继承&#x1fa77;继承与友元&#x1f9e1;继承和静态成员&#x1f49b;菱形继承及菱形虚拟继承&#x1f49a;继承和组合 ❤️多态&#x1fa77;什么是多态&#xff1f;&#x1f9e1;多态的定义以及实现&#x1f49b;虚函数&#x1f49a;虚函数的重写&#x1f499…

吴恩达机器学习作业ex8:K 异常检测和推荐系统(Python实现)详细注释

文章目录 1 异常检测1.1 高斯分布1.2 估计高斯参数1.3 选择阈值 ε1.4 高维数据集 2 推荐系统2.1 电影评分数据集2.2 协作过滤学习算法2.2.1 协同过滤成本函数2.2.2 梯度协同过滤2.2.3 Regularized cost function2.2.4 正则梯度 2.3 学习电影推荐2.3.1 推荐 后记 1 异常检测 在…

c++入门基础篇(上)

前言&#xff1a; 我们在之前学完了c语言的大部分语法知识&#xff0c;是不是意味着我们可以马上从事开发呢&#xff1f;其实行业中的绝大部分岗位都用不到c语言&#xff0c;那我们为什么要学c语言呢。c语言虽然和我们日常开发没有很大的关系&#xff0c;但是学习c语言可以为我…

14.x86游戏实战-汇编指令cmp test

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

LLm与微调

推荐尝试的微调模型 internlm2-20b-chat&#xff0c;internlm2-7b-chat&#xff0c; Qwen2-7B-Instruct, Qwen2-1.5B-Instruct, Qwen1.5-32B-Chat (Qwen2-0.5B、Qwen2-1.5B, qwen1.5的4B&#xff0c;7B&#xff0c;14B&#xff0c;32B) glm-4-9b-chat, glm-4-9b-chat-1m, gl…

SLAM相关知识

目前在SLAM上的传感器主要分为两大类&#xff1a;激光雷达和摄像头 激光雷达&#xff1a;单线、多线 摄像头&#xff1a;单目相机&#xff08;普通USB相机&#xff09;、双目相机&#xff08;2个普通的USB相机&#xff09;、单目结构光&#xff08;深度相机&#xff09;、双目…

【二】Ubuntu24虚拟机在Mac OS的VMware Fusion下无法联网问题

文章目录 1.环境背景2. 需求背景3. 解决方法3.1 在mac的终端查看虚拟机NAT网络3.2 查看unbuntu节点2的网络配置3.3 问题定位与解决3.3.1 检查是否有冲突3.3.2 冲突解决方法 4. 总结4.1 NAT 网关的原理4.2 VMware Fusion 的 NAT 模式4.3 为什么网关冲突会引起问题4.4 理解配置冲…

AutoHotKey自动热键(五)添加WINDOWS秘笈指令-输入瞬间启动功能

在AUTOHOTKEY的使用中,不仅仅可以监听组合热键,还可以监听正常文本击键录入,这是另一种监听方式,比如依次击键jsq之后直接弹出<计算器>工具,或者依次击键sj之后直接输出135****5564的手机号码,等等,这就是autohotkey的录入击键监听,以双冒号为开头:: 因这种录入监听像极了…

【UE5】仅修改结构体的若干个数据

蓝图中的结构体变量 | 虚幻引擎4.27文档 (unrealengine.com) 连线连到傻&#xff0c;因为如果某个变量set空值也一起过去了。一查发现有这个节点。

EEG源定位(EEG Source Localization)

EEG源定位&#xff08;EEG Source Localization&#xff09;是一种用于确定大脑内部电活动来源的方法。通过在头皮上记录的电信号&#xff08;EEG&#xff09;&#xff0c;源定位技术可以推断这些信号的起源&#xff0c;即确定大脑中的哪些区域产生了这些电活动。这对于理解大脑…

【面向就业的Linux的基础】从入门到熟练,探索Linux的秘密(十三)-常用的命令

上述是一些系统命令的基本练习&#xff0c;可以当做日常笔记学习收藏一下&#xff01;&#xff01;&#xff01; 目录 前言 一、文件权限 二、文件检索 三、查看文件内容 四、用户相关 五、工具 六、安装软件 七、作业​​​​​​​ 总结 前言 上述是一些系统命令的…

简单仿写MVC

代码地址&#xff08;需要自取&#xff09;&#xff1a;mvc_Imitation: 简单仿写实现MVC (gitee.com) 项目目录 先把架子搭好 Controller注解 Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) public interface Controller { }RequestMapping Do…

大模型lora微调中,rank参数代表什么,怎么选择合适的rank参数

在大模型的LoRA&#xff08;Low-Rank Adaptation&#xff09;微调中&#xff0c;rank参数&#xff08;秩&#xff09;是一个关键的超参数&#xff0c;它决定了微调过程中引入的低秩矩阵的维度。具体来说&#xff0c;rank参数r表示将原始权重矩阵分解成两个低秩矩阵的维度&#…

互助学习平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;课程信息管理&#xff0c;课程分类管理&#xff0c;课程评价管理&#xff0c;学习计划管理&#xff0c;留言板管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;课程信息…

Databend 开源周报第 152 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend。 支持内置 UDFs …