随着盘算机信息技术的生长,人们越来越重视信息的平安性,信息数据的平安保密已经成为影响盘算机生长的一个主要课题。机密文件、商业情报、银行账号、网络密码、科技功效、包罗私人信件等等,都成了用户为难以存放发愁的心病。密码可以说是他们的唯一的精神寄托,通过密码,他们可以对这些信息举行加密,或者通过密码对用户存取信息举行授权,非法用户克制存取有关信息。 然则有了密码,用户也不能高枕无忧,由于密码都是人工键入的,都是由键盘的可见字符组成(包罗汉字),若是一个非法用户不幸猜中了你的密码,哪怕只有万万分之一的几率,也会给你的数据平安带来潜在威胁,而不光会污染你的数据,丧心病狂的人甚至会在瞬间摧毁你苦心经营多年的功效。更何况现在有了电脑作为工具,它可以在一分钟之间穷举成千上万个密码,行使局域网分布式盘算,一个小时内穷举十位以下的所有密码,更不幸的是我们的用户所用的密码都是出奇的易记(击),他们偏好单用数字和字母,这为他们数据平安埋下了危急。 本文正是通过引用一个穷举密码的例子来提醒用户,在密码问题上不要大意,密码要求尽可能长,而且不要小看非数字和非字母字符,密码要定期替换。动态密码,相对更为平安。 二、实现原理: 我们的用户一样平常都过输入密码的履历,一样平常情况下系统都市显示一个对话框,提醒用户输入密码,密码编辑框一样平常具有ES_PASSWORD 气概,用户输入完成后,要求按《确定》按钮确认,若是密码准确,系统就会最先事情,否则系统会提醒你密码错误,要求按《确定》按钮重新输入。无论我们运用鼠标的技术有多高,若是我们想在短时间内穷举所有可能密码,基本不现实。然则高速运行的盘算机可以做到。 我们可以通过编程,行使Windows API 函数EnumWindows 和EnumChildWindows对当前运行的所有程序的所有窗口(包罗子窗口即控件)举行遍历,通过窗口题目查找密码输入和失足确认重新输入窗口,通过按钮题目查找我们应该单击的按钮,通过ES_PASSWORD 查找我们需要键入的密码窗口。 我们可以通过向密码输入窗口发送WM_SETTEXT新闻模拟输入密码,通过向按钮窗口发送WM_COMMAND新闻模拟单击。所有这一切我们可以把它放在一个线程内运行,我们用户可以随时暂停、随时中止退出。我们可以在枚举密码的过程中,把密码保留在一个文件中,以便下次接着下一个序列的密码再次穷举。直到找到密码为止。找到密码后,由于不再泛起密码输入窗口,程序虽然仍在继续枚举窗口,但由于找不到对应窗口,不会发送任何新闻。我们打开纪录文件推算前一个序列的密码即可找到对应的密码。 枚举密码的方式有多种,这跟密码的组成有关,若是你忘记了你的wps 的文件密码,而且你确切知道密码由数字组成,你就可以接纳数字穷举,固然程序还提供了其它穷举方式,包罗大写字母、小写字母、大小写夹杂、字母数字、标点符号字母数字组合等等。每一种穷举方式都有进度纪录保留,下次穷举不用从头最先,字符个数从一位到多位自动增进。你可以通过编辑配置文件setup.ini控制穷举进度,尤其是当你知道密码的某一位确切为某一个字符时,或者确切知道密码有几位时,通过修改当前密码(退出程序情况下),可以大大加速穷举速率,以便短时间内找回那根遗忘的神经,叫醒那存储密码的神经米细胞。 三、详细细节: ◆历程和线程