先介绍最简单的方法,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}

两款不错的Linux密码生成工具的更多相关文章

  1. 两款CSS3样式可视化在线生成工具

    CSS3随着浏览器的升级已经被越来越广泛的运用,合理的运用CSS3可以使你的网站更加美观,并且之前只能用js才能实现的效果也已经可以直接用 CSS3来实现.但是虽然如此,很多浏览器对CSS3的支持还都 ...

  2. Linux下三个密码生成工具

    http://code.csdn.net/news/2820879 想出一个难破解且容易记的密码对不是一件简单的事情.在我为电脑设定一个新密码,或者在线注册了一个新的账号,需要输入密码的时候,脑袋就一 ...

  3. LINUX下一款不错的网站压力测试工具webbench

    LINUX下一款不错的网站压力测试工具webbench 分类: Linux 2014-07-03 09:10 220人阅读 评论(0) 收藏 举报 [html] view plaincopy wget ...

  4. 推荐两款远程管理Linux工具(基于Windows系统)

    推荐两款远程管理Linux工具(基于Windows系统) 1.Xshell 百度百科:Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows ...

  5. 复杂密码生成工具apg

    复杂密码生成工具apg   密码是身份认证的重要方式.由于密码爆破方式的存在,弱密码非常不安全.为了构建复杂密码,Kali Linux预置了一个复杂密码生成工具apg.该工具可以提供可读密码和随机字符 ...

  6. RubyCritic:一款不错的检测代码质量工具

    关注代码质量是高效开发必须要做的一件事,那么在 Ruby 开发的过程中,是否有什么好的代码质量检测工具呢?下面由 Ruby 工程师路英瑞介绍一下 RubyCritic--一款还不错的代码质量检测工具. ...

  7. 9款最佳的Linux文件比较工具

    程序员和撰稿人在编写程序文件或平常的文本文件时,有时想知道两个文件或同一文件的两个版本之间的差异.你在Linux上比较两个计算机文件时,文件内容之间的差异就叫diff.这一描述来源于提到diff的输出 ...

  8. 推荐两款好用的反编译工具(Luyten,Jadx)

    使用JD-Gui打开单个.class文件,总是报错// INTERNAL ERROR 但当我用jd-gui反编译前面操作获得的jar文件的时,但有一部分类不能显示出来--constants类,仅仅显示 ...

  9. 【转】LINUX下一款不错的网站压力测试工具webbench

    原文链接:http://blog.csdn.net/xinqingch/article/details/8618704 安装: wget http://blog.s135.com/soft/linux ...

随机推荐

  1. js生成二维码 qrcode

    js生成二维码 QRcode npm 地址 1.安装qrcode //在项目文件夹中执行: npm install --save qrcode //或者,将其全局安装以使用qrcode命令行来保存qr ...

  2. Python3+unittest使用教程

    一.直接使用TestCase 注意所有测试方法都需要以test开头.代码如下: import unittest class Test1(unittest.TestCase): @classmethod ...

  3. Oracle单机Rman笔记[6]---记一次oracle脱机异地还原

    系统情况介绍 正式环境:windows 2008 r2-32bit/ Oracle: Release 11.2.0.1.0 目标环境:windows 2012 Standard-64bit / Ora ...

  4. Maskrcnn遇到的坑

    第一个要讲maskrcnn 中keras 升到2.1 然后 在线程问题上要把workers设置成1,是否使用线程设置成false 然后调用模型的时候要把模型和加载文件放到一个目录下

  5. java多线程高并发知识总结

    1.      计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...

  6. java基本类型和数字类及其相关计算

    --- java 八大基本类型 byte  short int long double float boolean char --对应的包装类 Byte Short Integer Long Doub ...

  7. 关于ijkplayer下载的demo不能运行,这是因为FFmpeg

    前提是你在Mac上已经配置了 homebrew 包管理工具 关于ijkPlayer的demo和framework的使用,也许当直接下载下来不能使用,这时候你需要再你下载的当前目录下运行,你看下自己的目 ...

  8. Android四大组件之 --- Service入门

    在前面了解了什么是多线程和异步消息处理机制后,我们来看一下到底什么是Service. 1. 什么是service(service的作用)一个服务是一个具有较长生命周期但没有用户界面的程序,例如:一个正 ...

  9. Spring Cloud分布式微服务云架构集成项目

    Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Clo ...

  10. 基本矩张量与strike.dip.rake的对应

    basefp1=[ ]; M(,:)=[ ]; basefp2=[ -];M(,:)=[ - ]; basefp3=[ ];M(,:)=[ ]; basefp4=[ -];M(,:)=[ ]; bas ...