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
相关文章:
python破解密码·筛查和选择
破解密码时可能遇到的几种情况 ① 已知密码字符,破排序 ② 已知密码位数,破字符 ③ 已知密码类型,破字位 ④ 已知部分密码,破未知 ⑤ 啥都不知道,盲破,玩完 ⑥ 已知位数、字符、类型、部分密码中的几个&am…...
【将应用程序注册为系统服务】
在 Linux 系统中,将应用程序注册为系统服务可以使其在系统启动时自动运行,并且可以通过 systemctl 命令进行管理。/etc/systemd/system 目录是用于存放用户定义的 systemd 服务单元文件的目录。 将 Logstash 注册为系统服务 假设你已经安装了 Logstash…...
从0-1搭建一个web项目(路由目录分析)详解
本章分析vue路由目录文件详解 ObJack-Admin一款基于 Vue3.3、TypeScript、Vite3、Pinia、Element-Plus 开源的后台管理框架。在一定程度上节省您的开发效率。另外本项目还封装了一些常用组件、hooks、指令、动态路由、按钮级别权限控制等功能。感兴趣的小伙伴可以访问源码点个赞…...
Zabbix分布式监控
目录 分布式监控架构 实现分布式监控的步骤 优点和应用场景 安装Zabbix_Proxy Server端Web页面配置 测试 Zabbix 的分布式监控架构允许在大规模和地理上分散的环境中进行高效的监控。通过分布式监控,Zabbix 可以扩展其监控能力,支持大量主机和设备…...
前端面试39(关于git)
针对前端开发者的Git面试题可以覆盖Git的基础概念、常用命令、工作流程、团队协作、以及解决冲突等方面。以下是一些具体的Git面试 Git基础知识 什么是Git? Git是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个人共同在一个项…...
13--memcache与redis
前言:数据库读取速度较慢一直是无法解决的问题,大型网站应对的方式主要是使用缓存服务器来缓解这种情况,减少数据库访问次数,以提高动态Web等应用的速度、提高可扩展性。 1、简介 Memcached/redis是高性能的分布式内存缓存服务器…...
QT学习日记一
创建QT文件步骤 这是创建之后widget.cpp和widget.h文件的具体代码解释,也是主要操作的文件,其中main.cpp不用操作,ui则是图形化操作界面,综合使用时,添加一个元件要注意重编名和编译一下,才能在widget这类…...
redhat7.x 升级openssh至openssh-9.8p1
1.环境准备: OS系统:redhat 7.4 2.备份配置文件: cp -rf /etc/ssh /etc/ssh.bak cp -rf /usr/bin/openssl /usr/bin/openssl.bak cp -rf /etc/pam.d /etc/pam.d.bak cp -rf /usr/lib/systemd/system /usr/lib/systemd/system.bak 3.安装…...
Spring Cloud Eureka
引入:远程调用时,url是写死的 String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 解决思路: 比如(医院,学校等)机构的电话号码发生变化,就需要通知各个使⽤…...
threejs
1.场景清空,释放内容 // 假设你已经有一个Three.js的场景对象scene// 函数:清空场景中的所有对象 function clearScene(scene) {while(scene.children.length > 0){const object scene.children[0];if(object.isMesh) {// 如果有几何体和材质&#…...
将pytorch 模型封装为c++ api 例子
在 PyTorch 中,通常使用 Python 来定义和训练模型,但是可以将训练好的模型导出为 TorchScript,然后在 C 中加载和使用。以下是一个详细的过程,展示了如何将 PyTorch 模型封装成 C API: 步骤 1: 定义和训练模型&#x…...
珠宝迷你秤方案
珠宝迷你秤作为一种便携式电子称重设备,因其小巧、便携、精度高等特点,广泛应用于各种需要精确称重的场景。可能这个目前在国内使用的人比较少,但在西方国家珠宝迷你秤却是可以用来送礼的物品。因为珠宝迷你秤的外观跟手机外观大多相似&#…...
边缘概率密度、条件概率密度、边缘分布函数、联合分布函数关系
目录 二维随机变量及其分布离散型随机变量连续型随机变量边缘分布边缘概率密度举例边缘概率密度 条件概率密度边缘概率密度与条件概率密度的区别边缘概率密度条件概率密度举个具体例子 参考资料 二维随机变量及其分布 离散型随机变量 把所有的概率,都理解成不同质量…...
软件架构之系统分析与设计方法(2)
软件架构之系统分析与设计方法(2) 8.4 面向对象的分析与设计8.4.1 面向对象的基本概念8.4.2 面向对象分析8.4.3 统一建模语言 8.5 用户界面设计8.5.1 用户界面设计的原则8.5.2 用户界面设计过程 8.6 工作流设计8.6.1 工作流设计概述8.6.2 工作流管理系统 8.7 简单分…...
AD确定板子形状
方法1 修改栅格步进值,手动绘制 https://cnblogs.com/fqhy/p/13768031.html 方法2 器件摆放确定板子形状 https://blog.csdn.net/Mark_md/article/details/116445961...
CSS【详解】边框 border,边框-圆角 border-radius,边框-填充 border-image,轮廓 outline
边框 border border 是以下三种边框样式的简写: border-width 边框宽度 —— 数值 px(像素),thin(细),medium(中等),thick(粗)border-style 边框线型 —— none【默认值…...
Error: EBUSY: resource busy or locked, rmdir...npm install执行报错
Error: EBUSY: resource busy or locked, rmdir...npm install执行报错 你一个文件夹目录开了两个cmd命令行(或者powershell),关掉一个就好了。...
Hot100-排序
1.快排 215. 数组中的第K个最大元素 - 力扣(LeetCode) (1)第k大的元素在排序数组中的位置是nums.length - k。 假设我们有一个数组nums [3, 2, 1, 5, 6, 4],并且我们想找到第2大的元素。 步骤 1:排序数…...
树链剖分相关
树链剖分这玩意儿还挺重要的,是解决静态树问题的一个很好的工具~ 这里主要介绍一下做题时经常遇到的两个操作: 1.在线求LCA int LCA(int x,int y){while(top[x]!top[y])if(dep[top[x]]>dep[top[y]]) xfa[top[x]];else yfa[top[y]];return dep[x]&l…...
如何将Grammarly内嵌到word中(超简单!)
1、下载 安装包下载链接见文章结尾 官网的grammarly好像只能作为单独软件使用,无法内嵌到word中🧐🧐🧐 2、双击安装包(安装之前把Office文件都关掉) 3、安装完成,在桌面新建个word文件并打开 注…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
