Excel·VBA破解密码

news/2024/11/27 23:35:18/

上一篇文章《Excel·VBA数组排列函数》,实现了VBA排列功能,而排列重要应用就是破解密码

目录

    • Excel密码破解
    • zip、rar密码破解

Excel密码破解

支持破解纯数字、数字字母混合、纯字母等形式的密码
因破解速度不快,支持排列分段破解

Sub excel破解密码()'利用排列函数破解密码,如果密码正确则打开文件,支持排列断点、正向、反向查找Dim arr, brr, file_name$, pw$, wb, start_t&, end_t&, step_t&, i&, j&tm = Timer: On Error Resume Next  '密码错误时,不加本句会弹窗报错file_name = "E:\测试\密码文件.xlsx"  '文件arr = Array(1, 2, 3, 4, 5, 6)  '可能的密码元素'arr = Array(0, 1, 2, 3, "a", "b", "c")  '混合密码brr = permut_arr(arr, 6)       '密码位数,排列start_t = 0: end_t = 0         '遍历排列的起止位置,1为第1个,-1为最后一个If start_t > 0 And end_t > 0 And start_t <= end_t Then  '起止位置>0,正向查找step_t = 1ElseIf start_t < 0 And end_t < 0 And start_t >= end_t Then  '起止位置<0,反向查找start_t = UBound(brr) + start_t + 1: end_t = UBound(brr) + end_t + 1: step_t = -1ElseIf start_t = 0 And end_t = 0 Then  '起止位=0,全部查找start_t = LBound(brr): end_t = UBound(brr): step_t = 1ElseDebug.Print "参数错误": Exit SubEnd Ifopened = FalseFor i = start_t To end_t Step step_tpw = Join(brr(i), ""): j = j + 1Set wb = Workbooks.Open(filename:=file_name, Password:=pw)If TypeName(wb) = "Workbook" ThenDebug.Print "破解完成,密码为:" & pw,Debug.Print "遍历" & j & "种密码,用时:" & Format(Timer - tm, "0.00")opened = True: Exit For  '跳过剩余密码排列End IfNextIf opened = False Then Debug.Print start_t & "-" & end_t & "序号密码排列都不对,用时:" & Format(Timer - tm, "0.00")
End Sub

破解密码测试

密码排列6选6共720种排列7选6共5040种排列
耗时(秒)74.64542.53

破解速度不到10个/秒,属实不快,如果是银行卡此类10选6的密码估计需要4.5小时,如果是数字字母混合36选8可能需要4200年,这还是没有考虑字母大小写、元素重复的情况

zip、rar密码破解

支持破解纯数字、数字字母混合、纯字母等形式的密码
因破解速度不快,支持排列分段破解
使用 Shell 函数运行 winrar.exe 程序破解密码《Office VBA 参考·Shell 函数》
《WinRAR中文版》

Sub zip破解密码()'利用排列函数破解密码,如果密码正确则解压文件,支持排列断点、正向、反向查找Dim fso, arr, file_name$, save_path$, pw$, rarexe$, rarstr$, result&tm = Timer: Set fso = CreateObject("Scripting.FileSystemObject")file_name = "E:\测试\密码987654.zip"  '压缩文件save_path = "E:\测试\解压成功\"  '保存路径,建议为新文件夹rarexe = "E:\software\winrar\winrar.exe"  'winrar程序路径arr = Array(4, 5, 6, 7, 8, 9)  '可能的密码元素brr = permut_arr(arr, 6)       '密码位数,排列start_t = 0: end_t = 0         '遍历排列的起止位置,1为第1个,-1为最后一个If start_t > 0 And end_t > 0 And start_t <= end_t Then  '起止位置>0,正向查找step_t = 1ElseIf start_t < 0 And end_t < 0 And start_t >= end_t Then  '起止位置<0,反向查找start_t = UBound(brr) + start_t + 1: end_t = UBound(brr) + end_t + 1: step_t = -1ElseIf start_t = 0 And end_t = 0 Then  '起止位=0,全部查找start_t = LBound(brr): end_t = UBound(brr): step_t = 1ElseDebug.Print "参数错误": Exit SubEnd IfIf fso.FolderExists(save_path) = False Thenfso.CreateFolder (save_path)ElseIf Dir(save_path) <> Empty Then Debug.Print "建议保存文件夹为空,便于后续判断是否解压成功,程序终止": Exit SubEnd IfFor i = start_t To end_t Step step_tpw = Join(brr(i), ""): j = j + 1rarstr = rarexe & " e -y -p" & pw & " " & file_name & " " & save_path  '解压命令result = shell(rarstr, vbHide)   'Shell函数运行命令,隐藏窗口If Dir(save_path) <> Empty Then  '由于解压耗时,就算解压成功也判断为空,故建议分段破解Debug.Print "解压成功,密码为:" & pw & ",由于解压耗时,密码也可能是本密码的前几个之一"Debug.Print "遍历" & j & "种密码,用时:" & Format(Timer - tm, "0.00")Exit For  '跳过剩余密码排列End IfNextSet fso = Nothing  '释放内存If Dir(save_path) = Empty ThenDebug.Print start_t & "-" & end_t & "序号密码排列都不对,用时:" & Format(Timer - tm, "0.00")Debug.Print "查看是否解压成功,由于解压耗时,密码也可能是最后几个之一"ElseDebug.Print start_t & "-" & end_t & "序号中存在正确的密码,建议采用二分法查找"End If
End Sub

由于使用shell函数调用压缩软件的方式,无法获取返回值判断密码是否正确,故采用判断保存文件夹是否为空的方式判断是否解压成功,因而实际正确的密码可能是程序输出密码的前几个之一

破解密码测试
速度很一般,6选6共720种排列,用时32.93秒,较python破解速度近10000个/秒属于非常慢
《利用python破解zip压缩文件密码》


http://www.ppmy.cn/news/135999.html

相关文章

【WIN】超简单的Excel密码破解

新开一Excel&#xff0c;同时按AltF11&#xff0c;进入VBA界面&#xff0c;点菜单上的插入&#xff0c;模块&#xff0c;在新出来的窗口粘贴一下代码&#xff1a; Sub crack() Dim i As Long Dim FileName As String i 0 FileName Application.GetOpenFilename("Excel文…

Excel 各种密码的破解,各种大全值得收藏!(亲测有效)

本文介绍在 Excel 的多个文件版本中破解各类密码&#xff0c;包含文件的查看、只读密码&#xff0c;工作表、工作簿的保护密码&#xff0c;以及 VBA 工程密码。内容非常全面&#xff0c;建议你收藏。文件作者加密码是防止数据被查看&#xff0c;修改&#xff0c;所以&#xff0…

Excel 各种密码的破解,大全建议收藏!

本文介绍在 Excel 的多个文件版本中破解各类密码&#xff0c;包含文件的查看、只读密码&#xff0c;工作表、工作簿的保护密码&#xff0c;以及 VBA 工程密码。内容非常全面&#xff0c;建议你收藏。文件作者加密码是防止数据被查看&#xff0c;修改&#xff0c;所以&#xff0…

excel文件管理:如何进行密码保护和破解? 上篇

对于一个公司&#xff0c;或者个人来说&#xff0c;有时候我们的数据往往需要加密。比如公司的经营状况和缴纳的税收有关系&#xff0c;人事档案中有每位员工的个人信息和工资组成说明&#xff0c;这些都是不需要无关人员知道的。微软对于EXCEL的设计就比较人性化&#xff0c;考…

忘记文档密码,教你破解WORD/EXECL/PPT文件加密密码

“ 大家办公时&#xff0c;有设置密码习惯&#xff0c;并且容易忘记密码&#xff0c;今天给大家提供一款超好用得小工具&#xff0c;。不定时更新软件、高效率工具小福利&#xff01;&#xff01;&#xff01;” 软件&#xff1a;Advanced OfficePassword Recovery 今天给大家…

C#,码海拾贝(30)——求“广义逆”的“奇异值分解法SVD”C#源代码,《C#数值计算算法编程》源代码升级改进版

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 矩阵类 /// 作者&#xff1a;周长发 /// 改进&#xff1a;深度混淆 /// https://blog.csdn.net/beijinghorn /// </summary> public partial class Matrix {…

新型UVC+UVA紫外线口罩消毒器-疫情防护+环境保护

疫情不知不觉已爆发了两年&#xff0c;两年内&#xff0c;疫情反反复复&#xff0c;这两年大家经历了太多太多&#xff0c;有好的有坏的&#xff0c;有泪水也有欢笑&#xff01;面对疫情&#xff0c;我们从一开始的不知所措&#xff0c;到现在的坦然应对。我们在保护自己的同时…

衣物紫外线消毒柜中应用的紫外线传感器

“春雨细绵绵、清明雨纷纷、梅雨下不停、夏季暴雨猛”马上又要迎来新一波降水&#xff0c;衣物又要不见天日——继续慢慢“阴干”。 适逢雨季&#xff0c;洗衣服绝对是最让人发愁的事情&#xff0c;因为衣物没有太阳&#xff0c;难以晾干。 微生物研究表明&#xff0c;一条脏内…