1. 程式人生 > >兩款不錯的Linux密碼生成工具

兩款不錯的Linux密碼生成工具

先介紹最簡單的方法,Linux自帶的

$ strings /dev/urandom |tr -dc A-Za-z0-9 | head -c 20; echo
whucNWhr35W6ZP0MxrLQ

 

$ head -c 12  /dev/random | base64 | tr -d '\n='
Z9Xx4neDb+P3jHkD


-c 引數調整密碼長度


pwgen

專案地址:https://sourceforge.net/projects/pwgen/

安裝

$ sudo apt-get install pwgen -y

使用

$ pwgen --help

Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]

 

使用案例:

$ pwgen -ysBv 15

Xb7:b[Lthw-zmVx k%vrdn]R>T4#+PW <%!4~\t}.MH!9&+ f?9|/MN3CJc_'[{ 4,[email protected]@*_
4"'_RsN4c;W_"k= $>MX,|T9TVWt'_s PW?;MHN+tzF7>g[ mb3+`tnx*/KrWPN zpqK$>)_-?CVk4`
N`4NH;f3q*'r+xz s|:~,>L'NP7m-jX FF'3'jTp9/R\!H\ Ht<(b^X<93*^q/+ |!^c]P+mgN$4C=s
`
^"HK3sm$F>;whb _XwWcFpW)4!xxpn 9#3V\kCVXW&]*7P ;Lvc\?L#mpM9xdL [email protected]\m/@*`zW%Tf Cmr+&'wH4#tr9,> @p.N)[email protected]{mX `Ph[#Jx|X:.3*#V [email protected]/,tF':n7T_JsL /:r7Rr]*z#^@n.( sJzppz%<-7C-C;T &c]3`Vd_7\$g#:x xLKF};M4#%v-7Rg +*/[wpp]{nF9bVF @r9(~w"[WzfCTt)
WfpvV9g~&gm$`h~ >!#qsfF3zN;+.>" j3M{`H$zft<~Nwg 7RbL?zPwJ$Mbd>} \F9`*ksWp77Cx#= K[cPz3FnzgK}fv: ^f7M"|z>][Hp$=( hV}>V7.$tJpV{r` qdN9$c%Nd'KR'jp {T3&7%]{*T43rN4 /*~L%W^L(q)N;t9 vTWJ&r4*)N9wnXr jn4R[V^~CT)V;/= HH',4"[email protected]>! :zcs\[email protected]\7(ghd -4>h;[email protected]$9]~ M/mFg';P7)dJ-|? '@VC4H*q|j&"@J7 T#}X:[j.L<3]Nr+ ?hF>)PLLN}r`T3K bqP4%R;?g)*L]Xk 3+)j--]Hv^[r?bw f.4kNRHh"t*)F^h tV}#[email protected]~dh$9tFb nbP3W~k#KfW3'|= [email protected]$/p"sh4W-_ V{9t"q-F4z9|L4T +[P\Ls9hL>*)gC4 w:bz7#g[,W&`?W= <C;7([email protected]<[_[\/ ^z?9b=bMh}+t%Xk hLr_K&d*c,g_4dL ^\^_#PJf4#w~CNk c*<dgr9_c"wNWgd 9MjkNq`[!k_|9(@ {[7&"&^4.^]sK"} w9>3\bX&(Wb"v\# b3%WK!=7bk]mtX~ z{'<[email protected]^fT'XV (}=p4R4dCNV|b<7 [$wt_)%9z!w.C+L Jq-tF?sj4WkH!x\ Kx34F_PHFr!~Frx ;([email protected]~ @pwF9LK<|<nx=[z (_[9cFTsX_MC&T> -{|_99pNmsq&CJ^ 9WbhPwt;+{"^`@\ n4h[x_F`g}Pt4{R p!m7d/dk4>[email protected] 9_/CdwTX}$!vN_h :J(d7_-)N["&j*w (=V#_<\p9JCw-~, >|_/k.7hdL\{`): .>3\fK_h>[email protected]% @9?XLVCg7~fF,fF 7"~+Wd!b4!hdx\9 4*m>*7FXd#P+<<p xt~:jm?$NHd[(9: LfvK">9M+"/;L9` rXJW+Xqp4^)n<JL <Vr9\n$P;hKhj`m /7&J&H\x&m}z[H/ +&h<?P%c!|]@3b| -zF9?<N;nt[J*`K {7JzT/*sN$vHgMh ,R7XN,Ws'#+&>*F )-WqdJ3"^s*JsC% '!9<]-d~_!Rw#[( 9)9dPJ%9Fk>L/n'

 

$ pwgen -ysBv 12 -1
j:3fcNW*<^Ft

 

$ pwgen -ysBv 6 -1 | fold -w1 |shuf|tr -d '\n'
q3?bH;

 

解釋:

fold -w1 將字串拆分,一行一個字元

shuf 打亂字串

tr -d '\n' 將一個個字元拼起來,用 tr '\n' '\0' 也行

 

xkcdpass 一個用Python編寫的密碼生成器

 

可以從這裡下載: https://pypi.python.org/pypi/xkcdpass/


安裝

$ sudo apt-get install xkcdpass -y

 

使用

$ xkcdpass --help

usage: xkcdpass [-h] [-w WORDFILE] [--min MIN_LENGTH] [--max MAX_LENGTH]
                [-n NUM_WORDS] [-i] [-v VALID_CHARS] [-V] [-a ACROSTIC]
                [-c COUNT] [-d DELIM] [--allow-weak-rng]

 

使用案例:

               
先簡單執行下xkcdpass

$ xkcdpass
coastal palpable spiny delicacy removal mobster

將會隨機給出你幾個像上面這樣的字典單詞

 

 

$ xkcdpass -c 6
saffron sixth duller bargraph unpinned gaffe
dangle hurling croon elevation untitled justly
muster pastrami unruffled armful purging stack
exceeding january outline preorder petticoat stubborn
elective doorman giddily clapping valium handled
moonstone direction spoiling debit antiviral yodel

會生成6行隨機字典單詞

 

你可以用這些單詞作為其他命令,比如 md5sum 的輸入,來獲取隨機密碼(就像下面這樣)。

$ xkcdpass | md5sum
e0c54cdbbd25ad71664b38e8b391f219  -

 


預設情況下,xkcdpass使用的是EFF的“Long”字典表,但是你也可以使用自己的字典表。(自己生成字典表可以參考crunch--字典生成工具)

$ xkcdpass -w wordlist1.txt -w wordlist2.txt

 

兩者結合指令碼使用

將 pwgen 和 xkcdpass 結合起來用,生成 12 位密碼的指令碼

#!/bin/bash
p1=`xkcdpass | md5sum`
p2=`pwgen -ysBv 6 -1 | fold -w1 |shuf|tr -d '\n'`
p3=`echo ${p1:0:6}${p2} | fold -w1 |shuf|tr -d '\n'`
echo ${p3}