web登陆
作者:休闲 来源:探索 浏览: 【大 中 小】 发布时间:2026-10-17 06:21:51 评论数:
输入框里敲下那串字符,回车。屏幕上转了两秒圈,然后跳出一行红字:密码错误。我盯着键盘愣了一会儿,才想起来上个月刚改过——大写字母、数字、符号,必须凑够十二位。当时设完就忘了,现在报应来了。
这是本周第三次被挡在门外。第一次是公司内网,第二次是某个两年没登录的论坛,这次是网银。每次都要走一遍“忘记密码”流程,收邮件、点链接、重设、确认。一套动作下来至少五分钟。我算过,光去年一年花在找回密码上的时间,够看完一部两小时的电影。
那扇门到底怎么开的
浏览器地址栏敲下网址,回车。这个动作背后发生的事,多数人没想过。DNS先把域名翻译成IP地址,像查电话簿一样找到服务器在哪。然后浏览器和服务器握个手,确认双方都在线、都愿意聊。握手分三步:你发个SYN,它回个SYN-ACK,你再回个ACK。三句话说完,连接建立。
接着浏览器发请求,服务器回响应。响应里带着HTML、CSS、JavaScript,浏览器负责把它们渲染成你看到的页面。整个过程通常在几百毫秒内完成。你眨一下眼,它已经跑完了几十个来回。
但这只是“打开网页”。登录是另一回事。
密码到底去了哪里
你在登录框里输入账号密码,点提交。密码不会明文发出去——至少正规网站不会。浏览器先用HTTPS加密,把数据打包成密文,再通过刚才建立的连接传给服务器。服务器收到后解密,拿到你输入的密码,然后跟数据库里存的比对。
数据库里存的不是你的原始密码。是哈希值。哈希是一种单向运算,把任意长度的输入变成固定长度的输出。同一个输入永远得到同一个输出,但没法从输出反推输入。服务器把你输入的密码做一次哈希,跟数据库里的哈希值对比。一样,就放行。
所以严格来说,网站也不知道你的密码是什么。它只知道你输入的密码经过哈希后,跟它存的那串字符能不能对上。
但这里有个问题。如果两个用户密码相同,哈希值也一样。黑客拖库后,看到两条相同的哈希,就知道这两个人用了同一个密码。更糟的是,简单密码的哈希值可以被彩虹表直接查出来。于是有了“加盐”——给每个密码拼上一段随机字符串再哈希。这样即使密码相同,哈希值也不同。
登录之后的事
验证通过,服务器给你发一个令牌。通常是个Cookie,里面装着Session ID。浏览器把它存下来,之后每次请求都带上。服务器看到这个令牌,就知道你是谁,不用每次都重新输密码。
令牌有有效期。过期了就得重新登录。有些网站还会绑定IP或设备指纹,换个网络就失效。安全是安全了,但用起来也麻烦。我见过最夸张的,某银行App每十五分钟踢一次,每次都要重新验证指纹。用一次骂一次,但钱在里面,骂完还得用。
那些绕不过去的坑
两步验证现在几乎成了标配。密码对了还不够,还得输手机上的动态码。安全系数上去了,但手机丢了就麻烦。我有个朋友去国外出差,手机没信号,收不到验证码,整整一周登不进公司邮箱。回来第一件事就是把两步验证关了。
还有验证码。图片里歪歪扭扭的字母,点起来没完没了的红绿灯。我知道这是为了防机器人,但有时候我自己都认不出来。上次遇到一个,让我选出所有包含“自行车”的图片。九宫格里三辆自行车,两辆摩托车,剩下四张模糊得看不清。我选了三次才过。
Passkey 这两年慢慢多起来。用指纹或面容代替密码,不用记,也不怕泄露。但支持它的网站还不多,而且换设备就麻烦。我试过在手机上给某个网站设了 Passkey,换到电脑上登录,发现根本不认。最后还是得回到密码那条老路。
登录这件事,说到底是在安全和方便之间找平衡。太严了,用户烦。太松了,数据丢。每个产品经理都在这个天平上加砝码,但从来没有完美的解。我那个忘记的网银密码,最后还是重置了。新密码写在便签上,贴在显示器边框。我知道这不安全,但总比再被锁在外面强。
