数据库|为什么密码设置为“jK8v!ge4D”仍然不安全?( 二 )


首先 , 这种密码设置方式 , 会增加用户记忆密码的复杂程度 。 他们很有可能无法记住自己设置的密码 , 从而“另辟蹊径” , 在笔记本或者其它地方把这个密码记录并保存下来 , 而这种方式也很容易被他人“破解” 。
其次 , 由于大多数密码都采取这样的密码设置组合 , 就复杂性而言 , 已经是其心目中的复杂密码了 。 因此 , 为了避免不必要的麻烦 , 他们可能会在各种平台和设备上都采用相同的密码 。
当你在某个网站上创建账号时 , 后台的一些“神奇魔法” , 会将你设置的密码转变成一串散列(散列也 经常被错误地视作为加密技术) 。 通过这么一个步骤 , 你设置的密码 , 可能在数据库中就会显示成这样:k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX 。
即便数据库被黑客入侵 , 黑客拿到这些散列也无法提取有用的信息 。 如果密码设置非常大众化 , 并且相关算法也非常简单的话 , 那仍然有可能根据这个散列来破解原密码 。 不过 , 只要密码设置妥当、散列生成过程也正常的话 , 它大体上仍然是非常安全的 。
但问题在于 , 不是所有的平台或者设备都会为用户的密码生成散列 。 如果你把相同的密码用于多个平台和设备的话 , 也许你使用的某个平台其后台编码非常简单 , 而你的密码也是直接一字不差地以原密码文本形式存在于其数据库中 。 如果他们的数据库遭到攻击 , 那你可能会暴露所有平台和设备上相同的密码 。 这么说来就相当可怕了 , 而实际上 , 真实情况比我们想象的还要可怕 。
因此 , 我个人建议 , 对于不同的平台 , 还是要设置不同的密码 。 然而 , 值得注意的是 , 如今大多数用户在各个平台上都有大量的账户 。 如果设置不同的密码 , 怎么才能记住所有的密码呢?一些超级用户可能会使用密码工具 , 来帮助其生成并管理密码 , 但一般用户基本上都没有这么做 。
实际上 , 其实还有更好的密码设置方法 。
数据库|为什么密码设置为“jK8v!ge4D”仍然不安全?
本文插图

图片来源:Pexels.com
破解密码需要多久?
我们先看看“gtypohgt”这个密码 。 它由八个随意的字母符号组成 , 全部都是小写字母 。 对于这种密码 , 要破解它只需要几分钟的时间 。
如果把其中某几个字符换成数字 , 比如“g9ypo3gt” , 那破解时间至少就需要一个小时了 。 如果再把其中的小写字母换成大写字母 , 比如“g9YPo3gT” , 那可能需要几天才能破解成功 。 另外 , 如果你再往里面添加一个特殊字符 , 比如“g9Y!o3gT” , 那可能破解这个密码都需要一个月的时间 。
“g9Y!o3gT”这个密码设置组合 , 就是我们通常所认为的安全密码 。 这样的密码设置 , 很难被他人猜到 , 也完全不属于常规设置密码 。 要破解这样的密码 , 的确需要一定的时间 。 但问题在于 , 这样的密码设置 , 会直接增加用户的记忆难度 。
然后 , 我们再看另一组密码“greenelephantswithtophats(戴着礼帽的绿色大象)” 。 这组密码包括24个小写字母 , 没有数字、随机字母和特殊字符 。 虽然你会认为这样的密码设置非常简单 , 但要想破解这样的密码 , 可能需要至少上百万年时间 。
所以 , 只要你在密码组合中增加一个字符 , 破解这个密码的难度实际上是在呈几何数增长 。 前述24个字符的密码 , 并不像一般的“666888”“elephant(大象)”等常用的密码 , 而且也很难让人猜测 。
这才是安全的密码
因此 , 我建议 , 设置密码 , 最好就让这个密码变成一个故事 。 比如 , 在设置Facebook账号的密码时 , 你可以使用“afaceforabookbutapizzaforahorse(书有一张脸 , 但马有一个披萨)” 。 总之 , 最好通过视觉呈现的方式来设置你的密码 。


推荐阅读