liunx自动随机生成密码的10种方法

本文介绍了在Linux环境下生成随机密码的十种不同方法,涵盖了从使用系统内置的随机数生成器到利用各种实用命令如dd、openssl、base64等,以及通过创建自定义函数简化操作的过程。每种方法都提供了详细的命令示例,帮助读者理解如何生成既安全又复杂的密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


密码是需要安全,如果复杂程度不够就会产生不安全,但是太复杂手动创建就会很麻烦
liunx最大的特点就是对于同样的事情,可以有多种的方法,主要你可以找到适合你的就OK

1.使用SHA算法来加密日期,并输出结果前32个字符:

[root@king ~]# date +%s | sha256sum |base64 | head -c 32 ; echo
MmY4MWRhOWRiYWYyYzQxZjI0YTY2OTQy

2.使用内嵌的/dev/urandom,并过来掉那些日常不怎么使用的字符。这里只是输出结果前32个字符

[root@king ~]# < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo
4YJkO--bQlTirzDqaovzfNVda83mk7Rh

随机生成8位密码:
[root@king 脚本之家]# tr -dc A-Za-z0-9_ </dev/urandom | head -c 8 | xargs
oFySNYNv


3.使用openssl的随机函数

[root@king ~]# openssl rand -base64 32
vU7CEIyDPbO7HgwPBVaN8ugrPM75qhbOXT4Va2sMKFo=

4.这种方法类似于之前的urandom,但它是方向工作的

[root@king ~]#   tr -cd '[:alnum:]' < /dev/urandom | fold -w32 | head -n1; echo 
xzjYv3wZ78wOsMiiAzDENxuHCPzhukTh

5.使用string命令,它从一个文件中输出可打印的字符串

[root@king ~]#  strings /dev/urandom  | grep  -o '[[:alnum:]]' | head -n 32 | tr -d 32 | tr -d '\n'; echo
kgPkTCcJyQVvFsn6KSL1phXbNTba7xC

6.这是使用urandom 的一个更简单的版本

[root@king ~]#  < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c 32 ;echo
_ejlhn5lVUcH7wCI14KBaAiiTqCFbx-M

7.使用非常有用的dd命令

[root@king ~]# dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 |rev | cut -b 2- |rev
B8dCPpQe/w/wC7fh61zi/6z6hHcPRHFpQ9SuscFP5Kg

8.甚至可以生成一个只用左手便可以输入的密码

[root@king ~]#  </dev/urandom tr  -dc '123456!@#%^^&*qwsxcyhbngkhb' | head -c32 ;echo
4c26@43y!43&!n^n3ncxx#4*gs#4q#k4

9.如果你每次执行上述的方法可能会觉得很麻烦,你可以考虑一些这个方法。那就是把它保存为函数,就可以在任何时候只要执行randpw就可以自动生成随机密码,或许也可以保存到~./bashrc文件里面

[root@king ~]# randpw(){ < /dev/urandom tr -dc  _A-Z-a-z-0-9 | head -c${1:-16};echo;}
[root@king ~]# randpw
RuBgcp2jlWreMl4K
[root@king ~]# randpw
Bz-G__Da0W0Um-hY
[root@king ~]# randpw
PeQ_RNNlupdNAK7T

10.最后这种是最为简单的方法,可以说是最简单的方法了

[root@king ~]# date | md5sum
af0d4e416309530da33ae53ce02531a8  -
[root@king ~]# date | base64
MjAxOeW5tCAwMeaciCAyM+aXpSDmmJ/mnJ/kuIkgMTY6NDY6NDUgQ1NUCg==

如果觉得这密码不带劲,可以生成一个核弹密码

[root@king ~]# ifconfig | md5sum
e8806b07c7a317f70d7848542859db65  -
[root@king ~]# ifconfig  | base64
ZW5zMzM6IGZsYWdzPTQxNjM8VVAsQlJPQURDQVNULFJVTk5JTkcsTVVMVElDQVNUPiAgbXR1IDE1
MDAKICAgICAgICBpbmV0IDE5Mi4xNjguMTU5LjExICBuZXRtYXNrIDI1NS4yNTUuMjU1LjAgIGJy
b2FkY2FzdCAxOTIuMTY4LjE1OS4yNTUKICAgICAgICBpbmV0NiBmZTgwOjo1ZWJiOjlkMzM6M2Q0
Mzo1MzYzICBwcmVmaXhsZW4gNjQgIHNjb3BlaWQgMHgyMDxsaW5rPgogICAgICAgIGV0aGVyIDAw
OjBjOjI5OjY4OmM1OmQzICB0eHF1ZXVlbGVuIDEwMDAgIChFdGhlcm5ldCkKICAgICAgICBSWCBw
YWNrZXRzIDIyMDU4ICBieXRlcyAxMTUzMjQ0OCAoMTAuOSBNaUIpCiAgICAgICAgUlggZXJyb3Jz
IDAgIGRyb3BwZWQgMCAgb3ZlcnJ1bnMgMCAgZnJhbWUgMAogICAgICAgIFRYIHBhY2tldHMgMjQ5
MjkgIGJ5dGVzIDQ2NTYwMTcxICg0NC40IE1pQikKICAgICAgICBUWCBlcnJvcnMgMCAgZHJvcHBl
ZCAwIG92ZXJydW5zIDAgIGNhcnJpZXIgMCAgY29sbGlzaW9ucyAwCgpsbzogZmxhZ3M9NzM8VVAs
TE9PUEJBQ0ssUlVOTklORz4gIG10dSA2NTUzNgogICAgICAgIGluZXQgMTI3LjAuMC4xICBuZXRt
YXNrIDI1NS4wLjAuMAogICAgICAgIGluZXQ2IDo6MSAgcHJlZml4bGVuIDEyOCAgc2NvcGVpZCAw
eDEwPGhvc3Q+CiAgICAgICAgbG9vcCAgdHhxdWV1ZWxlbiAxMDAwICAoTG9jYWwgTG9vcGJhY2sp
CiAgICAgICAgUlggcGFja2V0cyAwICBieXRlcyAwICgwLjAgQikKICAgICAgICBSWCBlcnJvcnMg
MCAgZHJvcHBlZCAwICBvdmVycnVucyAwICBmcmFtZSAwCiAgICAgICAgVFggcGFja2V0cyAwICBi
eXRlcyAwICgwLjAgQikKICAgICAgICBUWCBlcnJvcnMgMCAgZHJvcHBlZCAwIG92ZXJydW5zIDAg
IGNhcnJpZXIgMCAgY29sbGlzaW9ucyAwCgo=

Red Hat Enterprise Linux Server release 6.8 (Santiago)
wwwpas2@QHD-MMSC-KHDMH-mportal01:/opt/aspire/product/wwwpas2 > uname -r
2.6.32-642.el6.x86_64
wwwpas2@QHD-MMSC-KHDMH-mportal01:/opt/aspire/product/wwwpas2 > ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.1u  22 Sep 2016


wwwpas2@QHD-MMSC-KHDMH-mportal01:/opt/aspire/product/wwwpas2 > rpm -qa |grep pam
pam_krb5-2.3.11-9.el6.x86_64
fprintd-pam-0.1-22.git04fd09cfa.el6.x86_64
pam-1.1.1-24.el6.x86_64
pam_passwdqc-1.0.5-8.el6.x86_64
pam-devel-1.1.1-24.el6.x86_64
wwwpas2@QHD-MMSC-KHDMH-mportal01:/opt/aspire/product/wwwpas2 > openssl version
OpenSSL 1.0.1u  22 Sep 2016

shell生产32位密码的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值