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文件并打开 注…...
Casbin Talent 2026:高校开发者开源进阶与工业级项目实战指南
1. 项目概述:Casbin Talent 2026,一个为高校开发者量身定制的开源进阶通道如果你是一名在校大学生,对开源世界充满好奇,渴望在真实的工业级项目中打磨技术,但又觉得像Google Summer of Code(GSoC࿰…...
LLM推理中的动态显存卸载技术解析
1. LLM推理中的内存挑战与卸载技术本质在部署百亿参数级别的大型语言模型(LLM)时,GPU显存容量往往成为关键瓶颈。以主流的NVIDIA A100 40GB显卡为例,单卡甚至无法完整加载一个13B参数的模型(按FP16精度计算需要约26GB显存,尚未考虑…...
程序员连夜带团队跑路,省了23万:这AI太贵,真的用不起了
好的,收到!你说得对,之前的风格可能信息密度太高,有点“极客狂欢”的味道。 今天咱们换个姿势,用唠家常、说人话的方式,把5月11日AI圈最有趣、最魔幻的几件事儿聊明白。保证你在地铁上、蹲坑时,…...
Flutter for OpenHarmony 学习视频播放器技术文章
Flutter for OpenHarmony 学习视频播放器技术文章 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 🎬 Flutter for OpenHarmony 学习视频播放器开发实战 大家好!今天带大家从零开始打造一个专为在线课程、慕课学习…...
uniapp发开微信小程序处理手机物理按键逻辑
注意:wx.enableAlertBeforeUnload 需要微信小程序基础库 2.32.3 及以上版本如果版本不够,会发 fail 回调,在onLoad里面使用wx.enableAlertBeforeUnload开启物理返回键拦截在onUnload里面处理确认逻辑,wx.disableAlertBeforeUnload关闭物理返回键拦截监听…...
告别一堆转换头!一个自研小工具搞定USB、网口、485、232、TTL全互连(附配置软件)
极简主义工程师的终极武器:全协议互连调试工具实战指南 每次出差调试设备,我的背包里总塞满了各种转换头——USB转串口、网口转485、232电平转换器...直到上个月在客户现场,当我蹲在机柜旁手忙脚乱切换第五个转换器时,螺丝刀不小心…...
AUTOSAR Wdg模块的两种“狗”:片内看门狗与SPI外挂看门狗配置异同点解析
AUTOSAR Wdg模块深度解析:片内与SPI外挂看门狗的工程实践指南 在汽车电子控制单元(ECU)开发中,看门狗(Watchdog)模块是确保系统可靠性的关键组件。AUTOSAR标准下的Wdg模块支持两种典型硬件架构——片内集成…...
模块化前端框架设计:从原子状态到组合式架构的工程实践
1. 项目概述:一个轻量级、模块化的现代Web应用框架最近在梳理手头的几个前端项目,发现随着功能迭代,代码越来越臃肿,不同项目间的基础工具函数、状态管理逻辑、路由配置总是要重新写一遍,或者复制粘贴,维护…...
告别混乱:手把手教你用Python脚本整理ILSVRC2012验证集(附valprep.sh解析)
告别混乱:用Python脚本高效整理ILSVRC2012验证集 当你第一次打开ILSVRC2012验证集文件夹时,50000张图片杂乱堆放的场景可能让人头皮发麻——没有分类子目录,只有一堆以"ILSVRC2012_val_00000001.JPEG"命名的文件。这种原始结构与训…...
智能设备语音交互进阶:从‘慢交互’到‘快交互’,详解ONESHOT模式下的音频残留音过滤实战
智能设备语音交互进阶:ONESHOT模式下的音频残留音过滤实战 在智能语音交互领域,ONESHOT模式已经成为提升用户体验的关键技术。这种允许用户在唤醒设备后无需二次唤醒即可直接下达指令的交互方式,正在重塑人机对话的自然流畅度。然而ÿ…...
