侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

详解Linux下随机生成密码的命令总结

linux  /  管理员 发布于 7年前   154

有时候经常为如何设置一个安全、符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结。终于有一天实在忍不住了,于是学习、整理了一下如何使用Linux下命令来随机生成安全、符合密码复杂度的命令。

俗话说“工欲善其事必先利其器”。如果能用挖土机的,你为什么要用锄头? 最近一直在反思自己:习惯性用原始、老旧的方式解决问题。而不擅长利用一些工具快捷、方便的解决问题。

 1:mkpaswd命令 

mkpasswd 是Linux自带的一个密码生成工具,可以说是非常安全、可靠的(如果你担心一些在线的随机密码生成工具,会收集、记录你生成的密码的话)。个人非常喜欢这个工具的原因就是它可以设置生成密码的复杂度。另外,它不仅可以随机帮你生成密码,还可以直接帮你修改相关账号密码。如果你找不到这个命令,那么可能你没有安装expect包。

方式1: yum安装方式。

yum -y install expect

方式2: rpm安装方式。

[root@DB-Server Server]# ls *expect*expect-5.43.0-5.1.i386.rpm expect-5.43.0-5.1.x86_64.rpm expect-devel-5.43.0-5.1.i386.rpm expect-devel-5.43.0-5.1.x86_64.rpm expectk-5.43.0-5.1.x86_64.rpm pexpect-2.3-3.el5.noarch.rpm[root@DB-Server Server]# rpm -ivh expect-5.43.0-5.1.x86_64.rpmwarning: expect-5.43.0-5.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186Preparing...        ########################################### [100%]  1:expect         ########################################### [100%]

关于mkpasswd命令的一些参数,如下所示:

参数     功能描述
-l 定义生成密码的长度,默认9
-d 定义密码里面包含数字的最少个数,默认2
-c 定义密码里面包含小写字母的最少个数,默认2
-C 定义密码里面包含大写字母的最少个数,默认2
-s 定义密码密码包含特殊字符的最少个数,默认1
-p 指定另外一个生成密码的程序,默认是/etc/yppasswd

[root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 -v kerryspawn passwd kerrypasswd: Unknown user name 'kerry'.password for kerry is 1S[(qillErt8xf[root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 -v testspawn passwd testpasswd: Unknown user name 'test'.password for test is 1ar1t$-qwIHcrb[root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 -v oraclespawn passwd oracleChanging password for user oracle.New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.password for oracle is 24_vFkxqsol^pR[root@DB-Server Server]#  [root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 oraclei&jijfgB92*fDa[root@DB-Server Server]# 

 2:apg命令

apg是一款开源免费的密码随机生成器,官方网址为http://www.adel.nursat.kz/apg/

安装方式:

1:Ubuntu下的apt-get方式:

sudo apt-get install apg

2:使用RPM方式:

[root@DB-Server tmp]# rpm -ivh apg-2.2.3-3.el5.rf.i386.rpm warning: apg-2.2.3-3.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6Preparing...        ########################################### [100%]  1:apg          ########################################### [100%][root@DB-Server tmp]# 

关于apg命令的一些参数,如下所示:

参数     功能描述
-M 生成密码的模式
-E 生成密码过程中排除字符串
-r apply dictionary check against file
-b  
-p paranoid modifier for bloom filter check
-a 1: 随机密码生成模式。  0:可发音的密码生成
-n 包含数字,但是不是每个密码都有
-N 每个密码都必须包含数字
-m 生成密码最小长度,默认为8,实际生成的随机密码长度都可能超过这个值
-x 生成密码最大长度。
-s 包含特殊字符,但是不一定每个都有
-S 每个密码都必须有特殊字符
-c 包含大写字母。
-C 每个密码都必须包含小写字母
-d  在生成的密码中间不加任何分割符,默认6个密码连成一长串
-l 生成密码的spell
-t 输出密码中可发音字符的发音
-y 输出加密密码
-q 静默模式,不输出告警信息
-h 输出帮助信息
-v 版本信息。

[root@DB-Server ~]# [root@DB-Server ~]# apg -M SNCL -m 8 -x 12 Cupif6Swib?Kij/OvMuk7cyn=OtDuIf1eic3Enn>newCod"Rab4{Flipnayt0[root@DB-Server ~]# apg -M SNCL -m 8 -x 12 -tdujghitt6Ob` (duj-ghitt-SIX-Ob-GRAVE)RewgEmEc7Ow~ (Rewg-Em-Ec-SEVEN-Ow-TILDE)Oc%Knegg1 (Oc-PERCENT_SIGN-Knegg-ONE)loon5Quem+ (loon-FIVE-Quem-PLUS_SIGN)El5Bleb{ (El-FIVE-Bleb-LEFT_BRACE)Te4qued( (Te-FOUR-qued-LEFT_PARENTHESIS)

3:pwgen

pwgen生成的密码容易记忆而且安全。pwgen的下载地址为https://sourceforge.net/projects/pwgen-win/files/PWGen/2.9.0/

apt-get install pwgen

关于pwgen命令的一些参数,如下所示:参数说明:

参数     功能描述
-c 密码里面包含至少一个大写字母
-A 密码里面不包含大写字母
-n 密码里面至少包含一个数字。
-0 密码中不包含数字
-y 密码中至少包含一个特殊字符。
-s 生成安全随机的密码
-B 密码中不包含混淆的字符,例如“1”和“I”
-h 查看帮助信息
-H 使用指定文件sha1哈希生成,不适用随机生成
-C 按列打印生成的随机密码
-1 每行输出一个密码,不按列打印生成密码
-v 密码不包括元音字母或者可能被误认为是元音字母的数字

root@DB-Server:~# pwgen -hUsage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ] Options supported by pwgen: -c or --capitalize    Include at least one capital letter in the password -A or --no-capitalize    Don't include capital letters in the password -n or --numerals    Include at least one number in the password -0 or --no-numerals    Don't include numbers in the password -y or --symbols    Include at least one special symbol in the password -s or --secure    Generate completely random passwords -B or --ambiguous    Don't include ambiguous characters in the password -h or --help    Print a help message -H or --sha1=path/to/file[#seed]    Use sha1 hash of given file as a (not so) random generator -C    Print the generated passwords in columns -1    Don't print the generated passwords in columns -v or --no-vowels    Do not use any vowels so as to avoid accidental nasty words root@DB-Server:~# pwgen -CXu3aiQuu choo2Aij ohCh3eip ou8ofeeL aYai5thi iet3eeNe ieth1Dei Mairah0ogad9ooTh faBohZ6e ooJee3Oo Thiec4ah ahb1Iedi Sah7ahth Kainee4o beew7EeWEedoHa1B eom3Aiph daigee2I AoG4Gei8 Siejoo9o Eemahk6a erur1Aim ohbu6Thiae0Ohbai Ehai9go0 ni0iYe4k Ais0eedo Ki3Aiku4 cue7AeXi Ao3lae5o oot2ahThyiev2Lei iNgeeth5 aeBi1sai quahh0Ei wei3aeP5 Bohng8ae Eecuor5i kie1eiThhiepa7Th uchaiTh5 eiX5Echi reiR4ele RaWaic5l Ahk6fae1 eiD5aen2 saep4Vohirea6Quo Iakoh7pi eiPhoo1o pie9NeiR aj2Thied Mi3shugh oingi8Oo Vohthoo3eph6Eed1 Ibooc3ux wo5TaPha Ceigh8aH eeX7ae6r aeB1phoo zohquo9H ahPhaig5daenu0Ue qui2Feph queT5wo7 fooquo1M Vei4ceej Nie3nae2 IpahLa7e Ku6ahbufOong2ye8 eiJ2haej ohChie4i oowah4Oz utaiM8Sh hah3Oong ieQu1pai aewai8Miwaip3Aiz Hi0se4ai boon0AZi iR0eicee theeTh5n aeFo4air Tah7teef Aogh3QuoIya6eigo ie9Heegh aeyoh9Bo eiXoos4z YeZ7obai doosei4W sapeeBe8 ood1CahCie5ohF1s Goonoob2 aiy9Wu7W Oeh3sa5v EiTh9vai iyahs1Fu she5Oogi kohsha7EDeeleit4 eibie0Th ou4Deihi Pai0oluk Vae6baih Doocee5e ahD2iex3 eil9aiRuzeiNou0C uu4baiRi ahx2Eew2 Ashai0Ee Yae0aita paph4Air Ich4nei4 Mooph1CheZ0AiTha Hoo8gaeh aiTha3Ga Quaif7ei Iel9oafu Cai0iD2u EeCuL0qu oochae0Avuk1She4 Bai3Ohte aiChah9v Mohz7iYo zaeyoo8J xah4ohHi ohZ1ohw6 Eed0aeKotooQu3ar eiH8rata wiech2UB noMooch6 ahv8Boo3 zea2Gei4 oaM4Eile Cier9ieVbaeReef9 Iom2the0 Foe3ieza zaiNgat4 do1Bah7R ATuyom2u EeQu1lie chaeXo2jeiza0Aed Leimuol0 eid5yu5C ahp4ahTu OobieSh2 Av8Iaxoh yeid0Eej gooR1aeYroot@DB-Server:~# pwgen -1au9ni2Fa

生成一个10个长度包含大小字母,数字、特殊字符的密码:

root@DB-Server:~# pwgen -1cny 10 The9ciep#a

生成12个密码长度为10,并且至少包含一个特殊字符、数字、大写字母的密码

root@DB-Server:~# pwgen -cy -1 -n 10 12cahw]ie7uGnie1OoKo-uAnguu4Iu!Nhie%m2ojeHbe7Wo{w:ahEe^quaif2ulo{Ngia1ceAeToh"D7AhieS5Cho=chLu4seey<aBSi>oR.aiH6eo;l6Fie1m

 

当然还有一些其它密码生成工具,例如makepasswd、passwordmaker-cli 。个人觉得工具的掌握在精不在多,熟练掌握一两款工具即可。网上有篇用Linux命令行生成随机密码的十种方法, 里面介绍了很多种生成密码的工具和方法,只是有些命令和方法非常不实用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    详解linux根目录空间不足解决方案
    下一条:
    Linux进程间通信--使用信号
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客