这几天有知友问我他的电脑输错BIOS密码三次被锁怎么办。这个问题十分的普遍,而且缺乏一个统一的解决办法。我们今天就一起来探讨为什么会被锁,被锁后应该如何应对。
什么是BIOS密码?
在研究怎么解决问题之前,我们应该先厘清目标问题的边界。有人有时候会把BIOS密码和加密硬盘密码、Bitlocker密码甚至是Windows登录密码搞混。
硬盘密码是部分支持加密的硬盘解锁时必须输入的密码,不同的BIOS提供的窗口不同,试举一例:
硬盘密码
它和BIOS密码不同之处在于如果你没有这个密码,你就不能正确访问该硬盘,但你换一个硬盘还可以正常使用电脑。
Bitlocker是Windows提供的软件加密硬盘解决方案,我的专栏有不少文章,感兴趣的读者可以移步那里。对于它,本文就不再涉及了,它的界面是这样:
Bitlocker密码输入界面
Windows登陆密码界面就不用我举例了,大家都知道。
BIOS密码分为管理员密码(admin password)和用户密码(user password):
- 管理员密码:在改变BIOS设置需要输入。绝大多数管理员密码出厂时是关闭的,意味着任何人都可以修改BIOS设置。在开启后,需要输入密码后才可以修改BIOS设置。在系统启动的时候,管理员密码并不需要输入。注意,修改启动路径的时候也需要管理员密码。
- 用户密码:正常启动需要输入的密码。用户密码往往是关闭的,打开后意味着每次开机都要输入密码方可启动。
一般的BIOS秘密输入界面是这样的:
为什么BIOS密码输错会被锁住?
从前面的描述我们可以知道,一定是忘记了用户密码而不是管理员才会被锁住。不同的BIOS对输错用户密码的次数容忍度不同,一般三次左右就会跳出来错误框,阻止进一步尝试。
一个被锁住的例子
这时如果重新启动,一般还可以继续尝试三次,不会像苹果手机一样被锁住N年。但如果真的忘记了用户密码,怎么办呢?
重置BIOS密码
过去BIOS的信息都存在与CMOS中,对CMOS放电就可以重置BIOS密码。但现在使用了Flash芯片,对CMOS放电还管用吗?着我们要区别台式机和笔记本。
台式机一般都可以通过CMOS放电或者改变跳线(jumper)来重置密码。CMOS放电可以见前文,跳线可以查看手册或者在主板上寻找写着PWD, CLEAR CMOS, CLEAR, CLR,或者 PASSWORD字样的跳线:
跳线一般在BIOS Flash芯片附近。BIOS检测到跳线改变或者CMOS的内容无效后会将BIOS存储在Flash里面的内容重置为出厂设置。
笔记本的策略就有很大不同。对安全性不太在乎的厂商还是可以通过CMOS放电和跳线方法来重置BIOS。这里要注意,笔记本的CMOS电池和台式机一般不同,需要寻找一下:
有的时候还在主板的另外一面,需要把主板整个拆下来,十分麻烦。另外拆主板和重置往往会导致保修失效,要慎重对待。
笔记本是可以随身携带的,这就意味着要考虑丢失的问题。虽然数据安全可以通过Bitlocker等解决,但笔记本硬件本身的价值也可以成为偷窃的动力。所以很多负责任的厂商并不会任由用户随便重置BIOS密码。那怎么办呢?
什么是Service Tag
不要鄙视自己设置密码,又忘掉的人。现在围绕在我们周围需要输密码的情况何止数十种?有的必须全部数字,有的要求字母数字混合,有的必须有大小写混合,还有的还必须定时更新!!忘掉密码十分正常,我们也不能要求每个人都是爱因斯坦。这个世界还是普通人居多,IBM PC刚出来的时候,客服收到最多的不能启动的问题往往是没有插电源,光驱刚上市后很多人认为它是咖啡杯座子。如果笔记本密码忘记都要返厂修理的话,那么估计所有的笔记本厂商都有的事情忙碌了。
能不能有哪种办法是不必返厂,却可以直接进去修改BIOS密码呢?设置一个只有该笔记本厂商才知道的超级密码如何?听起来是个简单方便又高效的好主意,一个密码只有厂商知道,维修员只要输进去,立刻可以解开并可以重新设置密码,好方便!但实际上如果有很多人都知道的秘密,很快就会变成尽人皆知的”秘密“。不信你可以搜索一下某某路由器的超级密码,就会发现任何人,只要搜索一下就能知道。
那有没有一种办法,可以根据该用户的情况变成一组密钥告诉客服,客服在验证了客户的身份后就可以电话或者邮件的方式给用户一个密码,帮助用户解开电脑呢?这就是Service Tag。
电脑厂商的BIOS根据用户密码,计算(Hash)出一长串数字,在校验密码的时候仅仅校验Hash值。用户忘记密码后,将该Hash值告诉客服,并附上自己拥有这个电脑的证明(购买凭证啥的),客服在验证后可以告诉用户一个密码,和正常密码有一样的Hash值,就可以解开电脑。这个Hash值就是Service Tag:
很多电脑锁住后会显示一个Service Tag
有时仅仅是一串数字
注意客服告诉用户的密码很可能并不是原先客户的密码,仅仅Hash值一样而已。另外不同厂商计算Hash方法有极大不同,Service Tag可以是6到10位数字,也有像GUID一样的一长串数字,并不统一。
那么该知友如果不能重置BIOS密码的话,是不是只有打客服电话一条路了呢?也不尽然。
柳暗花明
世上没有不透风的墙,一件事干多了就会被人发现规律。有一个网站根据大牛Dogbert发现的规律,可以方便的根据service tag的Hash值,给出解密密码:
https://bios-pw.org/bios-pw.org只要输入service tag:
就会有一组密码,可以根据自己的机型等分别尝试:
很可能就会解开。如果不行可以去Dogbert的博客看看,有时候他会更新他用python写的脚本。
这个方法还有一定的失败率,越新的电脑越有可能不行,毕竟笔记本厂商希望避免这种情况的发生。如果还不行,打客服电话吧。
结论
综合来看,在用户密码忘记后可以尝试一下办法:
- 重置BIOS密码。有如我们提到的CMOS放电或者跳线,还有一些工具,但大多已经失效。
- 在锁住后,抄下Service Tag,打开https://bios-pw.org/ 键入Service Tag,尝试得到的密码。最后的办法就是联系客服。
另外如果在某宝搜索BIOS密码,会发现有些人提供解密BIOS密码服务。联系后会让你提供service tag,结果大多也是通过前面的网站类似的方法,效果并不好。
还有人推荐刷BIOS来重置密码。其实没有用户密码完全不能启动,也无从刷起。想要通过刷BIOS来回复管理员密码在现在来讲也有极大的可能性失败。借助硬件工具刷新BIOS一定要慎重,小心变砖。