先介绍最简单的方法,Linux自带的

$ strings /dev/urandom |tr -dc A-Za-z0- | head -c ; echo
whucNWhr35W6ZP0MxrLQ
$ head -c   /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
oNgequ6k aen7aeCi MahBual8 sa6uox7E hai8Xo9j Voo0Oi7o chae3OLa ooFohQu0
ughi0Aer Ing2Ekai thopie9C ahk5Aiyi Thee6eup aing6EiX diV8Loe0 iT6tae0k
ohYiequ7 eeD9aefu Eith8uow Oorai3Ai ojem0ahH ij6Yeoce ooGuchu2 ijoPh8oo
aiK8xomu EiTaes6a eituth9G fohZo9pa GuT6gao5 Kaivei3t eeP3iNge Teivah1H
AeCh9eil ieCh0eeC ua9buoSh epa2Hei3 unoW0koh tuiPhae0 uYaip4sh shuo5Ieb
sheRoo9e aiZee2sh aeF6hi8t eik8Chei Cei1oim8 OiRoo7ei ez2aiYee TeiM2thi
Ubie8hai Eeghie0a ieVo5Ook eGingah5 waeXoo6o aiGoh0nu aeTe9eiy zuumooT2
Caj0dee9 au0phuPh ot0Suv5O Quiid7uo Zohbeek8 ahF2ohlo Aedo6Ohl ieth0Ein
OXie4ieY vee6aeHu Ozouciu2 eez9ohSe xo3fu2Ae chi6Eelu quohY7ai ooRocha8
Aej3ieph iemouT9o thahFei6 CaRe8Haz Ahl4woh4 vae8ieCh wu2Ahh4u goXood5k
aiJae8Co ahT0aesh eit8geiL Ce0fephi He3Eila4 puhaMoo3 Aixais5m Aigho8ie
zaeWiqu5 uwee3Ahs tieDo2ph eeyahs5S Juz0AeNe Ighai7es xieQu7el hooNgai6
Wogh8Iey eeMeig2x xuinai7E heiTaiw4 Je9sho4i ooheLus0 ail4eiPh Shoh0azi
aiB0ooza Chie3evo pheeD1to Nei8yahv raB4opah Shoojoh0 ou7Oe9ei Gimoo1li
yo1Eexoo xoo5Euth aichoo6A Phoo3rej Te1joebo YaDu3ahX aiR8eequ leuw6Ahd
ufei8eeH aeseeTh5 achuv9Ai eethoh6E Ahso1loh ohViaW7U opook7Va Ga3faino
iDee0ic3 Ax4Vaina Theex6eo uu2soo2I bi4ovaVi Othech8b Aim4aego Xahb4aeC
shuth8Ae Ieghoh7j Hahmee8J BeaPah4o yoozaCh0 tho4Evio eengeeJ8 fiep4eiC
Xiephai9 Airu6pae ciB5Oi0t Ra3ahCai Ahqu0Val puTha8ka Paecos3f oBaePae4
Ahqu4jau EabaGhu0 zi6GeeTh ceeY2aiy Chin7shi Jeel3lie Ae2zaeti IePhu8ze
$ pwgen -
Dejux2th
$ pwgen -ysBv 

Xb7:b[Lthw-zmVx k%vrdn]R>T4#+PW <%!~\t}.MH!&+ f?|/MN3CJc_'[{ 4,rVVq?$gK@s@*_
"'_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''jTp9/R\!H\ Ht<(b^X<*^q/+ |!^c]P+mgN$4C=s
`^"HK3sm$F>;whb _XwWcFpW)4!xxpn 9#3V\kCVXW&]*7P ;Lvc\?L#mpM9xdL 3@hN\m/@*`zW%Tf
Cmr+&'wH4#tr9,> @p.N)KCtT=@9{mX `Ph[#Jx|X:.3*#V F@/,tF':n7T_JsL /:r7Rr]*z#^@n.(
sJzppz%<-7C-C;T &c]`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"xVTjf@H>! :zcs\H=@x\7(ghd
-4>h;+WWh@H$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}#4w@~dh$9tFb nbP3W~k#KfW3'|=
HCd@-$/p"sh4W-_ V{9t"q-F4z9|L4T +[P\Ls9hL>*)gC4 w:bz7#g[,W&`?W= <C;7(gPV@<[_[\/
^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{'<c9.r@^fT'XV (}=p4R4dCNV|b<7
[$wt_)%9z!w.C+L Jq-tF?sj4WkH!x\ Kx34F_PHFr!~Frx ;(H3x73MhM3@gq~ @pwF9LK<|<nx=[z
(_[9cFTsX_MC&T> -{|_99pNmsq&CJ^ 9WbhPwt;+{"^`@\ n4h[x_F`g}Pt4{R p!m7d/dk4>J@Ljj
9_/CdwTX}$!vN_h :J(d7_-)N["&j*w (=V#_<\p9JCw-~, >|_/k.7hdL\{`): .>3\fK_h>Ws4_@%
@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  -
j:3fcNW*<^Ft
$ pwgen -ysBv  - | 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
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 - | fold -w1 |shuf|tr -d '\n'`
p3=`echo ${p1::}${p2} | fold -w1 |shuf|tr -d '\n'`
echo ${p3}

最新文章

  1. jquery用一个事件控制另一个事件是否执行(不是删除事件)
  2. 用javascript去掉字符串空格的办法
  3. Android之Service
  4. 接收POst数据流数据
  5. (四)学习JavaScript之className属性
  6. MVC-Model数据注解(三)-Remote验证的一个注意事项
  7. iOS开发总结-搜索功能实现--使用SKTag
  8. Nuget 相关
  9. Citrix 服务器虚拟化之十三 Xenserver虚拟机内存优化与性能监控
  10. Python之__loader__
  11. 【源码】canal和otter的高可靠性分析
  12. CENTOS6.6下mysql5.7.11的percona-xtrabackup安装与备份
  13. New UWP Community Toolkit
  14. Bootstrap modal模态框关闭时,combobox input下拉框仍然保留在页面上
  15. HTML中的文本标签
  16. python截取字符串
  17. 6、JVM--类文件结构(上)
  18. [机器学习&amp;数据挖掘]朴素贝叶斯数学原理
  19. numpy数组-截取部分
  20. 随身Wifi+win7 搭建http代理 域名劫持 抓包 内容篡改实验环境

热门文章

  1. Kafka分布式消息队列
  2. 关于javascript中arguments的一个很好的例子
  3. unity 中让Text的文字动态刷新形式
  4. redis学习——redis应用场景
  5. Delphi下 Winsock 函数
  6. 文件属性和ls -lhi
  7. Oracle 11g 单实例到单实例OGG同步实施文档-RMAN 初始化
  8. php短信验证码接口接入流程及代码示例
  9. python基础数据类型练习2
  10. python-之-深浅拷贝二(元组)