初探网路安全(一):密码大小事,存在服务器的密码安全吗?

在每个要求你注册会员的新网站,都必须要想一组莫名复杂的密码,不但长度要够长、更要包含一堆有的没的字元。搞的在一个新网站注册时想密码的环节都会焦头烂额,有些人索性就想一组密码用在所有网站了。

注册所需的密码
*注册所需的密码

但这样做安全吗?显然所有网站都用同样的帐号密码不太妥当,被知道了其中一组,其它组也就不攻自破了。

要了解怎麽做比较好,我们先从一个网站的服务器是怎麽储存你的密码开始吧!

密码是怎麽被储存的?存在服务器的密码安全吗?

一般的网站在储存密码时,其实都不会将你的密码以「明文」的方式储存,而是被打乱了储存。

例如你有一组密码叫做 password123,经过一种叫做杂凑(Hash)的演算法打乱之後,会变成一组乱码如 cbfdac6008f9cab4083784cbd1874f76618d2a97,而网站在储存你的密码时就会存下这组乱码,而不是你原本的密码原文。

这样做有什麽好处呢?

首先,就算服务器不幸被骇客入侵,你的密码也不会真的被泄漏出来,因为储存的是密码经过 Hash 运算後的结果,基本上没有办法透过这个结果反推出你的真实密码为何。

密码的杂凑运算
*密码的杂凑运算

那麽当你登入时,网站怎麽知道这组密码是正确的呢?这就要谈到 Hash 的特性了:同一组密码经过 Hash 的结果,会得到同一组乱数。也就是说网站能够验证你的密码是否正确,但同时又不知道你的真实密码为何,是不是很神奇呢?

但,不是所有网站都这麽做的

几年前有个网站叫做我的网站没加密,就是将一些没把密码做 Hash 的网站放上来,让大家知道在这个网站注册会员时,密码是以明文被储存的。当这个网站的会员资料被窃取时,骇客所拿到的密码并不是乱数,而是真真实实的密码呢,如果有人在所有网站都取相同的密码,就真的惨了!

如何知道密码是否储存为明文?

因此在没帮你密码加密的网站,最好不要注册,逼不得已的话,也要有密码被公开的心理准备,取密码时最好不要和其它网站的有重复。

但在此之前,我们要如何知道哪些网站用明文储存你的密码呢?

可以用忘记密码来做测试,一般网站由於 Hash 过你的密码,在你忘记密码时只能够让你输入新密码重设。因此当你收到的确认信不是要你重设密码,而是直接告诉你密码时,可能就得注意了!

虽然这个网站或许没有用 Hash 的方式处理你的密码,也可能是帮你加密後储存,但这样也代表当这个网站加密用的金钥被窃取後,你的密码还是会被泄漏出去。

如果要人不泄漏秘密,最好的办法就是不要知道。

参考资料

  1. 我的网站没加密

<<:  [Java Day24] 6.1. 继承

>>:  予焦啦!Hello World 与 Uart 机制观察

Day1-为小学生撰写的网站小游戏

今天要写的是一个亲戚请求帮忙的网站小游戏 主要是要给国小小朋友学习「小数点的加法」 获得的道具有,甜...

[Day 5] Leetcode 322. Coin Change (C++)

前言 天啊今天整个非常赶,23:00到家打开发现今天是hard的题目(446. Arithmetic...

IOS、Python自学心得30天 Day-28 上传图片到Firebase Storage

根据官方文件给的方法上传 https://firebase.google.com/docs/stor...

Day 19. slate × Operation × WeakMap

在正式开始介绍 Operation 的内容之前,先让我们花一点篇幅来介绍一下『 WeakMap 』...

Day06-Gitlab runner 简介

CI/CD 简介 CI/CD 可拆成三个连续的步骤 Continuous Integration 持...