- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
破解Microsoft Word和Excel文档密码
破解Microsoft Word和Excel文档密码
摘 要:该文以Windows XP为平台,使用Visual Basic 6.0企业版编程工具,利用穷举法破解Microsoft Office XP Professional办公软件的Word文档和Excel文档设置的打开权限密码。
关键词:密码;解密;密码字符集;权限密码
为了安全,Microsoft Word和Excel可以通过设置“打开权限密码”来限制用户访问,以保护文档不被别人非法打开查看和修改,但如果用户不小心忘记了自己设置的密码,则可能会给用户带来不便和损失。本文研究利用穷举法来对已加密文档进行解密。
一、算法
(一)生成密码字符串
Microsoft Word和Excel文档的密码最多可以设置15个字符,可以是数字、字母(区分大小写)以及其他字符的任意组合。
利用穷举法破解文档密码的流程是先设定密码字符集合,并指破解密码的长度或范围,然后利用该集合的所有排列组合(即:尝试密码)去一个个尝试打开加密的文档,算法的关键是生成选定字符集中相应密码长度的所有排列组合。本程序主要利用两个For循环来生成选定字符集的所有排列组合,外层循环控制密码的位数K(1≤K≤15)的变化,内层循环生成K位密码的所有排列组合。
第一步,设置密码字符集。将选定的字符集合存储到一个字符数组password_char(ArrayLength)中。ArrayLength是选定字符集的长度。在设置密码字符集时,若只选择数字,则ArrayLength=10;若选择数字与小写字母,则ArrayLength=36。
第二步,产生K位密码组合字符串。假设密码长度为K位,那么共有ArrayLength的K次方(即:ArrayLengthK)种排列组合。用0~ArrayLengthK-1之间的一个整数N(即:0≤N≤ArrayLengthK-1)相对应于一组尝试密码,那么每一种密码组合都可以通过结合数值N和字符数组password_char(ArrayLength)来表示,从而得到密码长度为K时所有密码组合。
产生K位密码字符串的方法是:对于整数值N的来说,先对字符集长度进行整除运算(即:N=Int(N/ArrayLength));再用得到的新数值N对字符集长度求余(即:M=NMod ArrayLength),则数值M就对应于字符集里面的字符password_char(M),该字符就是密码字符串的第K-1位字符。不断重复上述先整除再求余的运算步骤K-1次,即可得到从第1位到???K-1位密码字符串。最后一位字符,也就是第K位字符,可直接用原来的整数值对数组长度求余来获得;
比如,当字符集为“ABC”时,字符数组为password_char(3)={“A”,“B”,“C”}。ArrayLength=3。对于长度为三位(K=3)的密码,共有排列组合ArrayLengthK =33=27种(即0≤N≤26)。当N=0时,对应的密码字符串为“AAA”;当N整数N=21时,对应的密码字符串为“CBA”;当N=26时,对应的密码字符串为“CCC”。
(二)尝试密码破解
当运行程序用一个密码去打开加密文档时,若密码不正确,则会产生运行错误,导致程序中止运行,这在穷举法中是我们不希望发生的,因此,必须使用On Error Resume Next语句打开一个错误处理程序。在尝试一个密码之后,通过检查Visual Basic内部错误对象Err的属性值 Number来确定该密码是否正确,如果密码正确,则给出破解成功提示信息并中止程序运行,否则继续尝试下一个密码。
二、程序设计
(一)程序流程图
(二)具体实现
1.新建VB工程
新建一个VB工程,取名GetPassword,将启动窗体命名为FrmMain。
选择“工程”菜单中的“引用”,在“引用”对话框中选择“Microsoft Excel10.0 Object Library”和“Microsoft Word10.0 Object Library”(注:其它版本的Office软件对象库各不相同,在“引用”对话框中视情况选择),以便程序能够引用Office组件的对象库。
在“工程”菜单中“部件”对话框中,选择添加“Microsoft Windows common controls -2.5(sp2)”,以便在窗体设计中使用微调控件。
2.窗体设计
在FrmMain窗体上,按照界面设计图添加控件,然后按对象属性表修改每个控件对象的属性(窗体设计图略)。
控件对象属性表:
3.程序代码
驱动器列表框:
Private Su
您可能关注的文档
最近下载
- 2024版房屋抵押贷款合同范本.docx VIP
- 基于反作用飞轮和磁力矩器的卫星姿态控制系统分析-analysis of satellite attitude control system based on reaction flywheel and magnetic torque device.docx VIP
- 地贫筛查中的血红蛋白电泳.pptx VIP
- 光电开关HPX-AG系列使用说明书.PDF VIP
- 精神科患者风险的管理.pptx VIP
- 保护女职工权益知识竞赛题库50题(答案).docx VIP
- 盖板涵施工监理细则.pdf VIP
- 迅达3300调试汇总.doc VIP
- (高清版)B-T 19843-2022 工业通风机 射流风机性能试验.pdf VIP
- 冰美人淘宝直播数据复盘.xlsx VIP
文档评论(0)