Posted in: PC/macOS

利用浏览器产生随机密码

好的密码要自己容易记且别人难破解,这显然是不可能的。编程随想博客在《如何防止黑客入侵[3]:如何构造安全的口令/密码》一文里面曾经提过密码分级以及一些技巧。我曾经也尝试过密码分级,难点在于如何定级不容易,随着使用的网站增多,每个级别的相同密码也越来越多,并不是好事。由于编程随想的文章是写于 2010 年,情况与现在有所不同了。现代的浏览器都提供了自动生成随机、高强度密码的功能,然后把密码保存在本地,下次登录时自动填充。以前我都无视了这个功能,直到最近才想起来去整理一下。我用 Safari 浏览器,以它为例记录一下体会。

Safari 浏览器生成的密码的特点

默认会生成一个长度为 20 个字符的密码,包含 2 个短横线和 3 个长度为 6 的大小写字母数字串,例如:

bigmix-fakxi3-Fihted

gyhgiq-gIzdod-9tifki

cunzi9-nuhxak-raqbIr

如果网站的密码框设有长度限制(存在 maxlength 属性)且小于20,则 Safari 会自动调节密码长度为允许最长的值。

上图要求密码最长是8位,则 Safari 会自动调节成 8 位数

有些网站只允许字母和数字密码,因此 Safari 还会另外提供一个无特殊字符的版本,但长度是 15,例如:

W7mmkDz2YGTZZHU

A6aP7UUDiHRI3a5

7dwCPZ5S0H77xTF

某些网站的奇葩规定

在我这次整理的过程中,发现某些网站还存在奇葩规定(用户是上帝还是你是上帝❓):

  1. 有的要求除了字母数字之外必须要有特殊字符,但特殊字符不能是 -,或者特殊字符只能是它自己规定的几个字符之一。
  2. 有的要求不能以数字开头

这种情况下, Safari 浏览器无法自己识别这些规则,需要自己手动修改一下填充的密码。

删除不用的条目

在整理过程中我发现几乎一半的老网站都已经倒闭了,因此需要把他们从密码列表里面删除。但奇怪的是,如果从 设置 -> 密码 里面的列表里删除的话,很多条目过了几秒钟之后又会出现,就像僵尸一样永远也无法清除。这种情况经常发生于那些比较老的网站条目,原因是浏览器反复读取 KeyChain。解决方法是:打开 KeyChain,从里面删除条目,就 OK 了。

有些老网站的条目删除之后又会出现,这很可能是反复读取 KeyChain 的缘故。

自动填充是否适用于 App?

这些随机密码是不可能记住的,只能通过登录时自动填充的方式来使用。浏览器登录对于大部分网站都没问题,难点在于 App 是否可能?

我发现:iOS (手机)的 app 基本上可以自动填充,估计是 iOS app 统一经过 App Store,基本都使用 webkit 框架的缘故。这又可以分为两类:

第一类是密码框输入设计规范的 App,如右图所示,只要在用户名输入框或者密码输入框里点击一下,在输入法上方就能出现备选密码,点击一下就可以自动填充了。

第二类是密码框输入设计不那么规范的 App,如下图所示,点击输入框后无法出现备选密码,但可以点击出现的“密码”按钮,进入所有密码列表,然后在“搜索”里面进行检索,即可。

密码框规范的iOS app,只要点击输入框,键盘下方会自动出现可用密码,点击即可自动填充。
密码框不规范的iOS app,点击输入框后无法直接出现密码,但可以点击那个“🔑”标记。
进入全部密码列表,然后在“搜索”里面搜网站的名字,即可自动填充。

macOS 的 app 因为来源各种各样,就不一定适用了。那些无法适用的只能自己复制粘贴一下了。

通过隔空投送分享给其他 macOS/iOS 用户

对于这种“记不住”的密码,如果想要分享给家人怎么办?除了复制粘贴文本之外,其实可以通过下图的方式隔空投送分享给他们,分享的是加密的 key chain,安全性较高。

点击右上角的“分享”按钮,可以把密码隔空投送给别人
隔空投送密码需要指纹或其他系统验证

如果只有单一设备,要注意保存 iCloud 密码

Safari 的密码库会与本机的 key chain 同步,而 key chain 又会和 iCloud 同步。万一设备坏了或丢了,在新设备上重新登录 iCloud 就可以重新使用密码。所以如果把 iCloud 的密码也改成了这种“随机”式的,而且只有一个苹果设备的话,那么需要自己单独保存一下iCloud 密码。否则万一设备坏了或丢了,就难以登录 iCloud ,那就不方便了。当然如果有多个同时登录了相同 iCloud 的设备就相对安全一些,毕竟它们同时坏掉的概率几乎为0。

双重验证的使用

这是可选项,只有少数网站支持。使用 macOS safari 浏览器和 iOS 之后,无需安装第三方 App 即可以操作。目前我使用的支持双重认证的网站有:

Protonmail、GitHub、Google、Facebook、Twitter、ORCID、cloudflare 等

下面以 Twitter 为例说明开启双重验证的方法。

第一步
第二步
第三步:直接拿 iOS 自带的摄像头去扫描,不用安装第三方 App。不要被说明文字误导了。
第四步:扫描二维码后点击黄色标签
第五步:选择网站,一般第一个就是,如果有多个用户名注意选择正确的条目
第六步:红色框内会显示一个验证码,有时间限制,但其实不用管。继续下一步
第七步:电脑网页上点击第三步里面的“下一步”按钮,然后点击输入框,等五秒钟左右(iCloud 会在后台同步手机和电脑之间的验证码),会出现一个提示框提示自动填充验证码
第八步:设置完毕
第九步:保存备用码。

Comments (12) on "利用浏览器产生随机密码"

  1. Google Chrome 86.0.4240.198 Windows 10 x64 Edition

    我使用keePass多年。感觉浏览器自动生成并存储的方式,只适用于高度私有化的环境。

      1. Google Chrome 86.0.4240.198 Windows 10 x64 Edition

        如果在办公环境里需要登陆的话,就有点不方便。自动生成的密码安全的同时,自己也不方便了。

  2. Google Chrome 112.0.0.0 Mac OS X  10.15.7

    其实我自己使用的密码,很多平台兜兜转转就那么几个固定的。虽然我也害怕密码被忘记,但使用那些工具生成的密码真的有点…… 总害怕找不到了。或者想不起来到底用的哪个工具了。确实也是隐患,现在我的密码一旦泄露,我很多平台账号就都遭殃了…

    1. Safari 16.4 Mac OS X  10.15.7

      我这里说的是用浏览器生成密码,无论如何浏览器是不会丢的,毕竟每天要用

    1. Safari 16.4 Mac OS X  10.15.7

      原生安卓是谷歌管理的,应该可以通过谷歌账号同步密码,也能同步到 windows 的 chrome 浏览器上。当然国产的安卓没有谷歌服务的估计就难办了

  3. Firefox 107.0 Windows 10 x64 Edition

    现有的密码管理工具都有或多或少的问题,比如跨平台、对应用的支持等等。
    所以我现在采用最原始的方式管理账号密码,用 lastpass 网页版生成密码,手动记录到备忘录里面。采用这种方式差不多有一年多了,目前感觉还行。

      1. Opera 92.0.4561.33 Windows 10 x64 Edition

        备忘录在iOS设备之间是同步的。Windows的话,得用别的方式发送,比如登陆网页版的 iCloud,或者微信等。

回复 springwood 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注