首页 > 代码库 > unix下生成随机复杂密码的几种方法

unix下生成随机复杂密码的几种方法

  最近有人问我怎么样在对unix系统中的密码做设置,当时就随口说直接在键盘上随便按一通就可以了,当然如果是业务需求不是非常严格的情况下当然这样也行,但是如果要求是需要一个非常长的、限定长度的随机数密码就有点不行了,那么我们就可以借助系统中常用的工具实现随机数密码的设置,当然实际生产的方法很多,在这里就简单的说一下常用的几种方法:

  一、使用有输出指令通过计算 md5 值,然后截取其中的一部分当做随机密码,这种方法使用的指令可以使用date、uptime等等有数字英文输出指令,所以直接echo "passwd123456"单词也行,缺点就是生成密码全部是小写+数字的安全性一般,方法如下:

[root@jim ~]# date | md5sum | cut -b 1-10
ac404a8128
#这里以date指令为例,截取1~10位生成的10位随机数密码

  二、使用mysql生成41位的十六进制密码,这个是通过mysql的哈希算法算出来,这个一般用于mysql的用户密码设置时使用,缺点是这种方法要依赖于mysql数据库,方法如下:

mysql> select password(‘password‘);
+-------------------------------------------+
| password(‘password‘)                      |
+-------------------------------------------+
| *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------------------------------------------+
1 row in set (0.00 sec)

  三、使用oenssl生成的随机数再用base64编码加密,这种方法比较常用,因为一般生成的密码有大小写英文、数字、特殊符号,这个方法需要系统中有安装openssl,一般使用yum就可以安装了,方法如下:

[root@jim ~]# openssl rand -base64 10
gIfIuLvIeZk+tw==
#生成10位的随机数密码

  当然在实际生产环境中可以根据不同的情况做选择,当然如果需要强密码一般推荐使用第三种方法

本文出自 “技术随笔” 博客,谢绝转载!

unix下生成随机复杂密码的几种方法