Pages

2012-03-30

使用Python產生密碼+更新日期字串

現代人穿梭於Internet網站之間,會員帳號/密碼管理成為一個重要課題。很推薦一套免安裝的密碼管理軟體「KeePass Password Safe」,它也有Android手機版本,能共用加密資料庫。某些網站基於安全理由會強制用戶得定期更新密碼,雖然KeePass都有提供密碼產生工具,但人就是懶惰,連開啟密碼產生器都嫌麻煩,最好是按個Hot Key就產生制式密碼串最好。

我個人比較不重要的密碼串,偏好喜歡用「2位英文+8位數字」共10位長的隨機字元,再儲存於KeePass項目備註裏。例如產生以下的字串:

PWD: ec26636617(2012/03/26 02:47:46 updated)
為了使用方便,我在Notepad++裏呼叫Python Script,即可輕易得到這樣的字串產出:
from random import *
import string
import time

#------------------------------------------------------------
# 可使用的字元來源
# string.ascii_letters, string.digits
# string.ascii_uppercase, string.ascii_lowercase
#------------------------------------------------------------
def Rand_Abc2Num8():
abc = ''.join(choice(string.ascii_lowercase) for x in range(2)) # 隨機抽出2個
num = ''.join(choice(string.digits) for x in range(8)) # 隨機抽出8個
dat = time.strftime('%Y/%m/%d %H:%M:%S') # 現在日期
return abc + '' + num + '(' + dat + ' updated)' # 組合字串

editor.replaceSel(Rand_Abc2Num8())
產出字串裏,密碼與日期中間不用空白隔開,是因為方便滑鼠點兩下選取密碼字串。 Python網上範例碼真的蠻多的,結合在Notepad++中呼叫執行,可以產出很多種自訂字串,極為方便。

我並沒有深入研究Python(也不必要),只要把我的需求Keyword作Google搜尋,把簡單可理解的Script範例拿來改,遇到不懂的再查書即可。以下超推薦這本Python入門書,用詞精簡又文風生趣,也兼顧到Python v2.6與v3.1跳版的相容性。


Beginning Python Using Python 2.6 and Python 3.1
Python EBook

No comments: