1. 从“123456”说起:这个最熟悉的数字串到底藏了多少坑
我敢打赌,看到“123456”这四个字的瞬间,你脑子里闪过的绝对不是一串数字,而是某个网站的登录页、某个多年没改过的密码,或者某次帮亲戚重装系统时顺手敲下的默认口令。作为从业者,我经手过的各类系统、设备、账号少说也有上百个,几乎每一次和密码打交道,“123456”都会以各种姿态出现——它是路由器背面贴纸上的初始密码,是某套内部系统首次登录时的强制口令,是新员工入职时HR发来的临时密码,甚至是某位老员工坚持用了十年的“个人专属密码”。
这个数字串太普通了,普通到我们几乎不会去思考它背后的问题。但恰恰是这种“普通”,让它成为了整个数字世界里最危险的一串字符。我并不是在危言耸听——如果你把“123456”当作密码来用,哪怕你只在一两个不重要的网站上用了它,你的账号、数据、隐私也已经在悬崖边上跳舞了。这篇东西,我打算从“123456”这个点切入,把密码安全这件事掰开揉碎讲清楚:为什么它会被大量使用、弱密码是怎么被攻破的、你应该怎么做才能彻底摆脱“123456”思维,以及我在实际折腾中踩过哪些坑、总结过哪些真正管用的经验。
这篇文章适合谁?如果你只是个普通用户,从来没用过密码管理器、搞不清双因素认证是什么,那你正好是这篇文章的核心读者;如果你是个开发者、运维、或者创业团队里兼职管账号的人,这篇文章里的排查思路和工具方案也值得你花十分钟扫一遍——毕竟,你不仅要为自己的密码负责,还要为用户、为公司系统里那几百几千个账号负责。
2. 为什么我们如此钟爱“123456”
2.1 大脑的懒惰与路径依赖
人类的大脑天生就不擅长记随机字符串。“Qx#7mN2$vLp”和“123456”之间的区别,不只是一个简单一个复杂,而是前者根本没有规律可循,后者只需要动一下手指就能打出来。这是个纯粹的认知负荷问题——我们在注册账号、设置密码时,大脑会自动发出一个信号:能不能用一个我永远不会忘记的东西?于是,“123456”“password”“abc123”“88888888”这些序列就从记忆深处浮了上来。
我见过太多真实案例。某次帮一家小公司做内部系统巡检,导出的用户密码哈希表里,排名第一的明文密码(因为用的是早期版本,哈希表里还存着不少弱口令)就是“123456”,占了整整四分之一的账号;紧随其后的是“123456789”和“admin123”。仔细一问,这些账号的持有人并不是不知道密码太简单有风险,而是“这台服务器我都用两年了,一直没出过事”“这系统里面又没什么重要数据”“所有人的密码都这样,改了反而麻烦”。这三句话,每一句我都听过不下十次。
这里面有个非常典型的心理陷阱,叫“概率忽视”。你觉得坏事发生在自己头上的概率是万分之一,所以你选择为了方便付出那万分之一的代价。但现实是,暴力破解工具不会因为你觉得概率低就不来试你。攻击者手里握着海量现成的常用密码字典,里面第一行就躺着“123456”。换句话说,你设置一个“123456”,等于把家门钥匙放在了门口地毯下面,然后告诉全世界“我家姓氏是张三”。
2.2 产品设计的诱导与默认值依赖
用户爱用“123456”,平台方和厂商也“功不可没”。我这些年调试过大量设备——路由器、打印机、摄像头、NAS、开发板、云服务器初始账号,很多设备的默认密码就是“123456”或者“admin”,而且没有任何强制修改的流程。消费者买回家,插上网线,登录进去,看到这个重置密码页面,顺手就输了个“123456”完事。产品经理当然知道默认密码有风险,但“出厂设置”阶段必须有一个既简单又好记的初始口令,否则用户记不住就会打客服电话投诉。
这种“默认值依赖”会一直带到用户成年之后的每一个账号注册场景里。一个更加隐蔽的诱导在注册流程上:很多网站设计注册表单时,根本没有提示用户设置强密码,密码框只要求6位或8位;有些甚至跳过密码复杂度校验,直接放行。用户看到这么宽松的规则,自然倾向于挑最顺手的输——你猜最顺手的是啥?多半又是“123456”。我在做安全评估时,见过一个企业后台账号密码是“12345678”,密码位数符合要求了,最大程度地满足了用户的“顺手”。
如果你正在开发或运维某一套系统,我劝你在设计注册和重置密码的流程时,多花点心思提醒用户——不是弹窗恐吓,而是给一个直观的“密码强度”指示条,外加默认强制要求至少10位且包含大小写和数字。很多用户是愿意配合的,只是没有人告诉他们应该怎么做。
2.3 数据泄露撞库下的连锁反应
“123456”还有一个特殊性:它不是孤零零的一个弱密码,而是全球密码泄露事件中的“头号通缉犯”。过去十几年,各类平台的数据泄露事件层出不穷,每一次泄露都会把海量用户名、邮箱和明文密码(或容易被破解的哈希)扔到暗网上。攻击者拿到这些数据后做什么?第一件事就是“撞库”——把这个邮箱和密码组合拿去批量尝试登录其他网站,因为太多人在不同网站用同一个密码了。
“撞库”的逻辑很简单:你在A网用了“123456”,B网也用了“123456”,C网还用了“123456”,那么只要A网泄露了,B和C就等于裸奔。我见过一位朋友,邮箱被入侵后,黑客顺着密码复用链条,把他社交账号、网购账号、视频会员账号全给清了,还顺带用他的名义发了一堆垃圾信息。事后复盘,发现罪魁祸首就是三年前在一次小论坛注册时用的“123456”——那个论坛早就被拖库了,只是他毫不知情。
所以,“123456”从来都不是“弱一点”那么简单,它是整个密码安全体系中极其危险的起点。一旦你在任意一个站点暴露了这个密码,其他所有用了同样密码的站点,都会像多米诺骨牌一样接连倒塌。
3. 弱密码是怎么被破解的:一次攻击的完整路径
3.1 暴力破解:穷举并不愚蠢
有些人觉得“暴力破解”就是攻击者拿个工具,从“000000”一直试到“999999”,天真到可笑。现实中的暴力破解远比你想象的聪明。攻击者手里有一批整理好的“密码字典”——最基础的版本就是全球历次数据泄露中统计出来的高频密码排名,“123456”几乎永远排在第一位。工具会优先尝试这些字典里的密码,而不是从零开始穷举。
拿一个实际过程举例:攻击者锁定了一个登录接口,先用本地字典跑一遍,比如尝试“123456”“123456789”“password”“qwerty”这些常见组合;如果目标开启了锁定策略,他们再换代理IP池绕开限制继续跑。对“123456”这种密码来说,暴力破解的成功率不是千分之一万分之一,而是只要接口没有验证码和频率限制,几乎几秒到几分钟内就会被试出来。
3.2 撞库与凭证填充:密码复用是放大器
我们在第2.3节已经提到了撞库,但我想再深入地讲一步。攻击者拿到一份泄露的“邮箱+密码”清单后,会用自动化工具批量去登录几十个热门网站,这个过程叫“凭证填充”。工具会模拟浏览器的登录请求,甚至绕过部分简单的验证码。如果你的密码在多个网站相同,那么攻击者只要中一个,剩下几乎是“秒破”。
我在一次漏洞测试中做过实验:拿一批脱敏的测试账号,密码统一设为“123456”,然后写了个脚本尝试登录五六个主流社交和电商平台。结果四个小时内就成功进入了两三个,其中有好几个平台还发来了“异地登录提醒”——提醒是发了,但如果没有双因素认证,攻击者根本不在乎那封提醒邮件。
3.3 字典攻击的变种与规则变换
字典攻击还有更聪明的版本。攻击者不会只试“123456”本身,还会跑一批“规则变换”——比如把“123456”变成“1234567”“654321”“123456789a”“123456Aa”,或者把“password”换成“Password1”“password!@#”。这些规则被揉进同一个工具里,配合GPU加速,短时间就可以完成几十亿次尝试。你以为加了个“!”和“Aa”就安全了,其实只要基础词还在常用字典里,规则变换照样能打穿。
我见过最离谱的一次,是某设备默认密码“123456”,管理员只改成了“123456!”。攻击者跑字典时有一条常规规则就是“在常见密码后面追加常见符号”,结果不到十秒钟就破了。这件事之后我得出一个结论:靠“在弱密码上做微调”来对抗攻击者,本质上是自欺欺人。
3.4 哈希破解:离线场景下的“屠刀”
有些系统不会明文保存密码,而是存哈希。很多人以为“密码哈希了就可以高枕无忧”,但实际上哈希的强度完全取决于密码本身的熵值。“123456”不管用什么哈希算法算,结果都是一串固定的、可预测的哈希值。攻击者手里有彩虹表——预先计算好海量常见密码的哈希值对照表,拿目标的哈希值一查,直接就能反查出明文,连“破解”二字都省了。
就算没有彩虹表,现代GPU跑MD5或SHA-1哈希的速度也能达到每秒几十亿次。一个6位纯数字密码,无论哈希算法多快,几十秒内必被穷举出来。这也是为什么“密码必须长且随机”不是平台方的“形式主义”,而是对面攻击者正拿着高速工具蹲着的硬核现实。
4. 抛弃“123456”思维:密码管理的正确打开方式
4.1 强密码的底层逻辑:熵值决定安全上限
决定密码安全性的核心指标叫“熵值”——你可以把它理解成“混乱程度”。一个只有数字、长度6位的密码,可能性只有10^6种,也就是一百万种组合,枚举毫无压力。一个包含大小写字母、数字、符号、长度12位的密码,可能性大约是破10的20次方,靠纯暴力几乎不可能在可接受时间内跑完。
所以,我建议的基线是:重要账号单独设置密码,长度至少12位,混合大小写、数字和符号。有人会抱怨“这么长,鬼才记得住”,这就引出了密码管理器。
4.2 密码管理器:一个人脑之外的“密码保险箱”
密码管理器不是什么稀罕物,它就是一个帮你生成强密码、保存强密码、自动填充密码的工具。你只需要记住一个主密码,其余所有账号密码都由它生成和存储。我这些年自己用的方案就是:主密码是一句只有我知道的随机短语,其余所有网站密码都是密码管理器生成的一长串乱码,绝无重复。
主流的密码管理器项目有很多,开源的和商业的都有,它们的安全模型大同小异:本地加密数据库,主密码不发送到服务器,云端只同步密文。我的实际建议是:优先选那些经过了独立安全审计、社区口碑好的方案,同时开启两步验证,确保主密码的那把钥匙不会单独暴露。
如果你觉得全量迁移太麻烦,我建议至少从“高危账号”开始——也就是邮箱、社交主号、支付平台、云服务器后台。这四个类别只要其中任何一个失守,都可能导致连锁灾难。
4.3 双因素认证:给密码加上第二把锁
密码再强,也存在泄露可能。所以现在所有值得重视的账号都应该开启双因素认证(2FA)。最常见的形态是TOTP(基于时间的一次性密码),也就是你手机里的认证器App每隔30秒生成一个六位数字。即使攻击者拿到了你的密码,只要拿不到你的手机或TOTP种子,就无法登录。
我给所有朋友的建议就一句话:能开2FA的账号全开,优先用TOTP,而不是短信验证码——短信可能被劫持,TOTP相对安全得多。但这里有个实操坑:开启TOTP时,服务方会给一个恢复码或备用码,很多人直接忽略或者截图后就删了。万一你手机丢了、卸载了App,恢复码就是你找回账号的唯一救命稻草,务必离线保存,最好打印一份放在家里。
4.4 一次详细的账号安全自检流程
如果你现在有点焦虑,不知道自己的密码到底处于什么状态,那就跟着我做一次安全自检。整个过程不需要技术基础,只需要耐心和大概二十分钟。
第一步,整理账号清单。把你记得的、正在使用的所有账号列出来,按重要程度排序:邮箱、支付、社交、工作系统、常用购物平台,这些一定是高危项。
第二步,检查密码复用情况。同一个密码被多少个账号使用?如果超过三个,立刻列入待修改名单。尤其是邮箱密码和社交密码,绝对不能和别的一样。
第三步,逐站开启2FA。从邮箱开始,然后是支付和社交。开启时把恢复码存到离线位置。
第四步,启用密码管理器。把现有密码统一替换为管理器生成的强密码,旧的“123456”“password”之类的弱密码全部作废。
第五步,检查“找回密码”的安全问题。很多平台的“安全问题答案”其实比密码还弱——比如“你的小学名称”可能被人从社交动态里翻到。建议一律填随机生成的答案,并记在密码管理器里。
这五步做完,你的密码安全水平基本上已经高于身边绝大多人了。
5. 实操篇:我用过的几个真实排查与加固方案
5.1 Linux服务器密码策略加固:从“123456”走向合理基线
如果你是运维、开发,手上有几台云服务器,请务必注意:很多云服务器在创建实例时会让用户设置密码,而相当多使用者嫌麻烦,直接填个“123456”或“12345678”就完事。这个习惯极其致命,因为服务器一旦暴露在公网,被扫描和爆破的密度远超你想象。
我在实际加固时,第一件事就是改掉所有弱口令,然后强制开启密钥登录。密钥登录是比密码登录高出好几个安全等级的方式——私钥留在本地,公钥放在服务器上,攻击者没有私钥根本无法登录。SSH 配置里要关闭密码认证,只保留密钥认证。改配置的时候小心点,先确认密钥能正常登录再关闭密码登录,否则你把自己锁在门外只能去控制台折腾的事,我也不是没遇到过。
第二件事是安装并配置fail2ban。它能监控登录日志,发现连续多次认证失败的IP就自动封禁一段时间。早期我裸奔跑过几台服务器,一天被扫描爆破几千次,有了fail2ban之后,成功率曲线几乎归零。它的配置不难,但注意要设置合理的禁令时间,别把自己同事的IP也封了。
5.2 路由器与办公设备:默认密码比你想的更危险
家用路由器和办公打印机的默认密码是重灾区。很多设备出厂是“admin/123456”,插上网线就能登录管理后台,进而篡改DNS、窃听流量。我接手过的某公司办公区,十几台打印机全部默认密码,任何人连着同一个Wi-Fi都能进去看扫描文件、发垃圾打印任务。
处理办法极其简单:拿到设备的初始密码后,第一时间登录管理页改成强密码;关闭不必要的远程管理功能;如果设备支持,开启自动更新固件。这件事没有任何技术门槛,纯粹是意识和习惯问题。
5.3 密码泄露检测工具的使用心得
市面上有不少“检测你的密码是否泄露”的在线服务,也有开源方案可以在本地比对。我的经验是:别在奇怪的第三方网站输入自己的密码,哪怕它说会做匿名比对。推荐的做法是使用主流密码管理器内置的泄露检测功能,或者访问那些由权威维护的泄露数据查询站点,只输入邮箱或手机号,不要输入密码。
如果你发现自己的邮箱出现在某次泄露事件中,你应该做三件事:第一,立刻修改该邮箱的密码,并开启2FA;第二,排查该邮箱是否收到过奇怪的“重置密码”邮件;第三,检查所有使用该邮箱注册的账号,特别是那些你可能已经忘记但还在自动续费的订阅。这个过程最能让你感受到“一个弱密码引发的连锁反应”有多吓人。
6. 常见问题与排查技巧实录
6.1 密码管理器的主密码忘了怎么办
这个问题的答案很残酷:如果你的主密码忘了,而且你没有设置恢复方式,那么你存在管理器里的所有密码都将变成不可解密的密文。这不是产品缺陷,而正是安全设计的核心——没有主密码,连服务方也解不开你的数据。所以我的建议是:主密码一定要设置成“高强度且你绝对忘不掉”的短语,比如几个词的组合加特殊符号;同时把主密码的提示信息写在一个只有你能看懂的地方,不要直接写完整密码。
6.2 2FA手机丢了怎么办
如果在开启TOTP时保存了恢复码,这个问题就只是“找回账号”的流程问题。如果没有保存恢复码,那就只能靠账号中其他已验证的身份信息去申请人工申诉,过程通常很痛苦,而且不一定成功。这就是为什么我在第4.3节反复强调:恢复码一定要离线保存,这不是可有可无的步骤。
6.3 企业里员工密码不配合怎么办
如果你在公司里管系统,最头疼的是制度落实。从我的经验看,靠通知和警告没什么用,最有效的是技术强制:在统一认证系统里启用密码复杂度策略、强制定期轮换(但注意不要过度频繁导致员工怨声载道)、强制开启2FA,以及提供企业级密码管理器的统一订阅。技术强制比任何安全培训都有效一百倍。
6.4 每个账号一个强密码,真的记不住怎么办
这问题的本质是把记忆负担外包给工具。用密码管理器之后,你只需要记住一个主密码,其余交给工具。日常使用中,浏览器扩展和手机端App都能自动填充,实际体验和“记不住”完全不冲突。我承认早期密码管理器的体验有点糟糕,但现阶段,主流工具已经做得很顺滑了。
6.5 “123456”用了十年,真的出事了吗
不少人抱着“我用了十年都没事”的心态。我的回答是:不是没出事,是出了事你还不知道。密码被攻击者拿到、被脚本批量尝试、被撞库撞到了但没有实际造成可见损失,这种事情每天都在发生。等到你看得见损失的时候,往往已经是不可逆的状态。网络世界从来就是“没被发现不等于没发生”。
7. 一点个人经验总结
我这些年跟密码打交道,最深的体会是:密码安全的本质不是技术问题,而是习惯问题。“123456”之所以泛滥,不是因为所有人都蠢,而是因为大家没有在早期养成正确的习惯,也没有遇到一个真正讲清楚利害关系的契机。
如果你至今还在用“123456”或它的亲戚们,我建议你从今天开始,别等“哪天有空”,就现在,拿出手机,把邮箱和支付的密码改掉,顺手开个2FA。这个过程只需要十分钟,但它会是你之后每一次登录时,心里少一分担忧的开始。
最后分享一个小技巧:设置新密码时,别再用什么“姓名首字母+生日”这种可被轻易猜到的套路。你可以用一个固定句式的来替代——比如随便找一句只有你知道的话,取每个字的拼音首字母,再插几个数字和符号。这种密码看着乱,但你只要记得那句话,就永远不会忘。
告别“123456”,并没有你想的那么难。