Mac OS生成隨機(jī)密碼的Python腳本

很多時(shí)候在注冊(cè)一些比較重要的帳號(hào)潦匈,或者使用一些比較重要的接口的時(shí)候,需要使用到隨機(jī)字符串徙瓶,為了方便铣焊,我們?cè)O(shè)計(jì)這個(gè)腳本需要注意以下幾點(diǎn):

1. 我們的密碼字符主要從0-9/A-Z/a-z這些字符中隨機(jī)獲取。為了避免顯示混淆晶渠,我們?nèi)コ址械臄?shù)字0和字母o以及數(shù)字1和字母l凰荚。
2. 命令不帶參數(shù)的情況默認(rèn)產(chǎn)生16個(gè)字符的隨機(jī)密碼
3.命令可以帶一個(gè)參數(shù),表明需要產(chǎn)生的隨機(jī)密碼的長(zhǎng)度
4.要把密碼打印到Terminal上褒脯,同時(shí)需要**把隨機(jī)密碼發(fā)送到剪切板**便瑟,方便粘貼使用
5.把命令放置到系統(tǒng)系統(tǒng)路徑下面,方便直接使用命令番川。

代碼如下:

# -*- coding:utf-8 -*-

import string
import sys
import random
import subprocess

alnums = [x for x in string.letters + string.digits if x not in ('0', 'o', '1', 'l')]    # 產(chǎn)生除了特殊字符之外的樣本

def genpass(n=16):
    """ 產(chǎn)生隨機(jī)密碼到涂,默認(rèn)長(zhǎng)度為16個(gè)字符 """
    passwd = list()
    for i in range(n):
        passwd += random.choice(alnums)
    return ''.join(passwd)


def write_to_clipboard(output):
    """ 把output內(nèi)容復(fù)制到剪貼板 """
    process = subprocess.Popen('pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=subprocess.PIPE)
    process.communicate(output.encode('utf-8'))


def main():
   if len(sys.argv) == 1:
        passwd = genpass()
        print passwd
        write_to_clipboard(passwd)
    elif len(sys.argv) == 2:
        try:
            n = int(sys.argv[1])
        except ValueError:
            print 'Input length of the password'
        else:
           passwd = genpass(n)
            print passwd
            write_to_clipboard(passwd)
    else:
        print 'Only need a argument: length of the password'


if __name__ == '__main__':
    main()

把腳本復(fù)制到/usr/local/bin下面名為genpass,賦予執(zhí)行權(quán)限sudo chmod 700 genpass, 然后就可以在Termianl中使用genpass命令了爽彤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末养盗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子适篙,更是在濱河造成了極大的恐慌往核,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚷节,死亡現(xiàn)場(chǎng)離奇詭異聂儒,居然都是意外死亡虎锚,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)衩婚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)窜护,“玉大人,你說(shuō)我怎么就攤上這事非春≈悖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵奇昙,是天一觀的道長(zhǎng)护侮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)储耐,這世上最難降的妖魔是什么羊初? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮什湘,結(jié)果婚禮上长赞,老公的妹妹穿的比我還像新娘。我一直安慰自己闽撤,他們只是感情好得哆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著腹尖,像睡著了一般柳恐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上热幔,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天乐设,我揣著相機(jī)與錄音,去河邊找鬼绎巨。 笑死近尚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的场勤。 我是一名探鬼主播戈锻,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼和媳!你這毒婦竟也來(lái)了格遭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤留瞳,失蹤者是張志新(化名)和其女友劉穎拒迅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡璧微,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年作箍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片前硫。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胞得,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屹电,到底是詐尸還是另有隱情阶剑,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布危号,位于F島的核電站个扰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏葱色。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一娘香、第九天 我趴在偏房一處隱蔽的房頂上張望苍狰。 院中可真熱鬧,春花似錦烘绽、人聲如沸淋昭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)翔忽。三九已至,卻和暖如春盏檐,著一層夾襖步出監(jiān)牢的瞬間歇式,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工胡野, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留材失,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓硫豆,卻偏偏與公主長(zhǎng)得像龙巨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子熊响,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容