第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

我的密碼之旅:從統(tǒng)一密碼,到云同步的隨機(jī)密碼器

標(biāo)簽:
Python

取一个变量很纠结,取一个密码很头痛。于是,我开始使用自己的随机密码器,并且它还是“云同步”的。

而出于以下的背景:

  1. 10 年前我使用一个固定的、统一的密码,直到一系列的明文密码泄露事件,我在不同的平台采用了不同的密码。

  2. 在经历了一系列的忘记密码之后,我开始采用平台限定的密码,即不同的平台,密码是半动态的。

  3. 现今的大部分重要网站都采用了二次验证,或是 Google Authenticator,或是短信验证。

  4. 在 ThoughtWorks,我们的密码需要每三个月换一次,它足够的长,并且有一系列的复杂规则。

于是,我终于编写了自己的随机密码器,然后它也是“云同步”的。

统一密码

大家都懂的。。。

如果你的所有账号只有一个密码,那么你完了。。。

最好不要拍些艳照什么的。

快速密码:解锁电脑

当我还在使用 Windows 时,从来就没有想过,可以拥有这样的一个密码:

1qaz2wsx

它在输入上特别快速,并且解锁起来又特别的快。

因为,对应于键盘上的:按键。它有一些变体,比如说:

1234qwer

又或者是:

1qaz@WSX

也会有一些其它高级的变体。

特定平台 + 固定密码

10 年前我使用一个固定的、统一的密码,直到一系列的明文密码泄露事件,我在不同的平台采用了不同的密码。在经历了一系列的忘记密码之后,我开始采用平台限定的密码,即不同的平台,密码是半动态的。如下就是一个简单的,对应于不同平台的代码体系,如:

  • 京东:tb-1qaz2wsx

  • 淘宝:jd-1qaz2wsx

而这样的密码本身也是不安全的,如果有人知道密码规则的话。那么,这无异于一场灾难。于是,我在设计出规则到现在,仅会在一些重要的网站上,采用这种规则。

使用密码管理器

在几年前,我初次接触到了密码管理:LastPass、1Password——对于普通用户来说,它们是一个相当不错的工具。1Password 可以使用 iCloud 同步,可惜我是个 Android 用户。因此,一旦需要我输入密码到手机的时候,就变得有点可怕。并且 1Password 也有对应的 Chrome 插件,可是 Chrome 的自动填充是另外一个问题——所以,尽量不要把电脑借给别人

然而,1Password 和 LastPass 的密码策略,让我觉得它也是不可靠的——Master Password,也就是一个密码可以解锁其它密码。

特定平台 + 生成密码

考虑到上面的密码在固定部分是不安全的,我便想到了一种更优雅的方式:基于 Git 的 SHA-1 算法生成的 commit 号,来实现:特定平台 + 生成密码。如下是一个 git log 的示例:

commit b40c83cb772d4b496d1f9ecec136e21d46f6a765
Author: Phodal HUANG <h@phodal.com>Date:   Tue Mar 13 17:00:11 2018 +0800

    [mooa] log: add basic logiccommit 3c8badf0bd6671368910fb22eada5a850a3fcf88
Author: Phodal HUANG <h@phodal.com>Date:   Tue Mar 13 16:46:53 2018 +0800

    [mooa] rename staus filter to status helper

其中的:commit b40c83cb772d4b496d1f9ecec136e21d46f6a765,即对应了一个随机密码。于是我们的密码就变成了:

  • 京东:tb-b40c83cb

  • 淘宝:jd-3c8badf0

当然了 btoa('jingdong'),也是一个不错的实践:amluZ2Rvbmc=

作为一个程序员,最后我采用的策略是,半动态的密码 + 生成的密码。

代码生成密码 + GitHub 存储密码

虽然,我不知道怎么样的密码是真的安全的,但是我觉得一个二十位左右的密码就是安全的。于是我编写了一个七行的 Python 脚本来生成一个 12 位的密码:

from random import choicefrom string import hexdigits, punctuationimport time

base_time = str(time.time())[12:16]
base_string = ''.join(choice(hexdigits) for i in range(6))
base_punctuation = ''.join(choice(punctuation) for j in range(2))

print(base_string + base_punctuation + base_time)

首先,生成器将从时间戳里,取第 12~16 位的字符,如下:

1520944501.967865

接着,生成器将从十六进制数字中,随机取 6 位:

0123456789abcdefABCDEF

最后,再从所有的特殊字符中取出几个字符:

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

就有了这部分的密码:

09a86a{#4242

PS:我使用的是 Python 3,你们这些 Python 2.6 的异教徒。

最后,需要有一个地方来同步我的密码,于是,我将密码存储在了 GitHub 上了——我的 GitHub 需要二次验证。

结论

最后,请不到你的密码贴在笔记本上。


點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消