一、破译普通密码的方法

工作中常遇到忘记了计算机的开机密码,以至于启动不了电脑,或者有需要破译开机密码的情况。目前常用的方法是打开机箱,对CMOS进行放电处理,清空CMOS中的内容。如果在某些特殊场合需要保留其内容,或者在机箱不便打开的情况下,能否用其它途径来破译开机密码呢?

目前主流计算机的BIOS均为AWARD公司生产的,CMOS开机密码*长为8个字符,采用穷举法看似有非常多的键盘组合,但经过加密运算后的有效“密文”只有16位,即65536种,因此有大量“重复”的密码,即虽然输入的键盘组合不一样,但CMOS中的密文是一样的,实际效果是一样的。对应这65536种密文,每个密文只需找出一种键盘组合即可。本文讲述如何用单片机来计算出这65536种键盘组合,并输给计算机,采用穷举法来破译CMOS密码。

一、CMOS密码加密运算方法

CMOS加密运算是:从低位到高位每一位的ASCII码左移2(n-1)位之后相加,其中n为位数,相加结果即为密文,存入CMOS。如果密码位数较多,运算结果超过16位,则将超出16位的部分再与低16位相加,保留此结果。

以4位密码“abcd”为例,计算机内部是将“d”的ASCII码64H保留,“c”的ASCII值63H向左移2位,b的ASCII值62H向左移4位,a的ASCII值61H左移6位,然后将这四个数相加得到一个16位数,此数2050H即为运算后的密文,存入CMOS。用十进制数表示此过程即为:100+99�4+98�16+97�64=8272转为十六进制为2050H。

二、密文向密码反推算法

由加密算法可知,肯定会存在多个密码运算后形成的密文相同的情况,因此用一个密文,可以反推出很多组密码来,我们只需要其中一组即可。

从10进制的角度出发,密码的ASCII码与密文的关系符合如下方程:

X1×1+X2×4+X3×16+X4×64+X5×256……=密文

其中X1,X2,X3,X4等分别为密码从低到高位的ASCII码。这是一个不定方程,所有符合下列两个条件的解都满足要求:

1.X1,X2,X3,X4……为整数。

2.X1,X2,X3,X4……的值大于等于32,小于等于126(键盘向计算机输入的字符ASCII值*小为32,*大126)。

求出任意一组符合要求的解后,每一个数字查ASCII码表,换成对应的字符,即可作为计算机开机密码。以刚才密码为“abcd”为例,运算后密文十进制数为8272,用凑数的办法可知以下等式也成立:104+98�4+98�16+97�64=8272,查ASCII码表可知�97�98�98�104对应的字符为a,b,b,h,因此“abbh”也可以做为开机密码开启电脑。用程序来求解这个方程有多种计算方法。*简单的采用几个变量累加的办法求解,但收敛速度慢,有其它收敛速度非常快的算法,本文不再赘述。

三、键盘接口原理

PC系列键盘采用行列扫描法识别按下的键,键盘的扫描控制电路的核心是8048单片机,执行固化在ROM中的键盘扫描程序,当有键按下时,产生接通扫描码,而该按键松开时,产生断开扫描码。键盘向计算机发送的数据为扫描码,与该键的ASCII码并不相同,其关系如下表所示,计算机接收到此扫描码可求出按键的ASCII码:

键的接通扫描码用上表所示一个字节表示,断开扫描码由接通扫描码加上80H而得。例如,“D”键按下后又松开,则键盘控制器先输出23H,再输出A0H。

目前主机板上键盘的插座主要有两种接口,一种为老式的大五芯接口:其接口定义为:1�Clock2�Data3�Notconnected4�GND5�Vcc+5V

目前较常见为小的六芯接口:其接口定义:1:Data2�notconnected3�GND4�VCC+5V5�CLOCK6�NOTCONNECTED,键盘扫描码经8048单片机通过data和clock两根信号线进行串行移位输出,串行序列发送时以clock信号的上升沿为准。四、用单片机来实现

单片机硬件很简单,从键盘插头中的data与clock信号接至单片机的两个I/O口,键盘接口中的VCC与GND信号直接向单片机供电,通过对单片机I/O口编程,控制data与clock的动作,实现向计算机传输数据。单片机内部从0开始,一直到65535,每一个密文经过程序反推出一组“键盘密码”,查出对应的键盘扫描码,依次发向计算机,然后发回车键。计算机接收到密码和回车后,开始校验密码,若密码不能通过验证,计算机会提示用户密码错误,单片机再发送下一组密码,依次循环。每秒种计算机可校验约10组密码,65536组密码两个小时可全部校验完毕,对于5位以下的密文,几分钟即可通过校验。

操作方法:按正常顺序打开计算机,在计算机提示输入密码的时候,将键盘插头拨下,把单片机上的键盘插头插在主机上,单片机上电后自**计算机发送各组数据,直到其中有一组数据通过密码校验,计算机加载操作系统。此时将单片机电路拨下,将键盘插上即可正常操作。操作系统加载成功后,可用其它软件获取CMOS密码,下次启动计算机时即可用获取的密码进入操作系统。

本方法已采用AT89C51单片机上,用FranklinC编程实现,在多台BIOS为AWARD公司生产的计算机上试验通过

二、WOW橙匕任务破译的密文怎么做

准备工具:电脑,魔兽软件;

1、在火之地上**一个熔化的火之主,然后接受任务。

2、青铜巨龙阿纳克罗诺斯收到它后被送到时间之洞。右击青铜龙阿纳克罗诺斯完成**个任务。

3、继续与青铜龙Anachronos的对话,你就可以收到下一个任务时间的波了。

4、接下来的任务是用全视之眼在火之国击败boss。

5、在火之国打败BOSS后,你可以完成橙色匕首的任务。

阵营与种族:

玩家可以选择加入联盟或是部落两大阵营。两个阵营相互对立,无法正常**和社交。分别有不同的种族,每个种族都各有自己鲜明的特色,包括各个种族各自的故事背景、城市、能力天赋以及不同的运输方式和坐骑。

联盟:

高贵的联盟种族,崇尚力量、牺牲、荣耀、传承、正义、公正,无数的成员将他们的科学技术、魔法奥秘和精神智慧贡献给了联盟,旨在建立一个和平公正的世界,并在这片伟大的土地上贯彻他们的信念。

三、密码破译的密码破译方法

通常,密码破译方法可以分为以下四类。在不知其**的情况下,利用数学方法破译密文或找到**的方法,称为密码分析(Cryptanalysis)。密码分析有两个基本的目标:利用密文发现明文;利用密文发现**。根据密码分析者破译(或**)时已具备的前提条件,通常将密码分析**法分为4种类型。

(1)惟密文**(Ciphertext-only attack)。在这种方法中,密码分析员已知加密算法,掌握了一段或几段要解密的密文,通过对这些截获的密文进行分析得出明文或**。惟密文**是*容易防范的,因为**者拥有的信息量*少。但是在很多情况下,分析者可以得到更多的信息。如捕获到一段或更多的明文信息及相应的密文,也是可能知道某段明文信息的格式。

(2)已知明文的破译(Known-plaintext attack)。在这种方法中,密码分析员已知加密算法,掌握了一段明文和对应的密文。目的是发现加密的**。在实际使用中,获得与某些密文所对应的明文是可能的。

(3)选定明文的破译(Chosen-plaintext attack)。在这种方法中,密码分析员已知加密算法,设法让对手加密一段分析员选定的明文,并获得加密后的密文。目的是确定加密的**。差别比较分析法也是选定明文破译法的一种,密码分析员设法让对手加密一组相似却差别细微的明文,然后比较他们加密后的结果,从而获得加密的**。

(4)选择密文**(Chosen-ciphertext attack)。密码分析者可得到所需要的任何密文所对应的明文(这些明文可能是不明了的),解密这些密文所使用的**与解密待解的密文的**是一样的。它在密码分析技术中很少用到。

上述四种**类型的强度按序递增,如果一个密码系统能抵抗选择明文**,那么它当然能够抵抗惟密文**和已知明文**。除**的穷尽搜索和密码分析外,实际生活中,破密者更可能真对人机系统的弱点进行**,而不是**加密算法本身。

利用加密系统实现中的缺陷或漏洞等都是破译密码的方法,虽然这些方法不是密码学所研究的内容,但对于每一个使用加密技术的用户来说是不可忽视的问题,甚至比加密算法本身更为重要。常见的方法有:

(1)**用户口令密码

(2)在用户输入口令时,应用各种技术手段,“窥视”或“**”**内容。

(3)利用加密系统实现中的缺陷。

(4)对用户使用的密码系统偷梁换柱。

(5)从用户工作生活环境获得未加密的保密信息。如进行的“垃圾分析”。

(6)让口令的另一方透露**或相关信息。

(7)威胁用户交出密码。防止密码破译,除去我们要从思想上加以重视外,采取的具体措施如下:

(1)强壮加密算法。通过增加加密算法的破译复杂程度和破译的时间,进行密码保护。如加长加密系统的**长度,一般在其他条件相同的情况下,**越长破译越困难,而且加密系统也就越可靠。

(2)动态会话**。每次会话所使用的**不相同。

(3)定期更换加密会话的**。