利用Linux系统生成随机密码的9种方法
Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它。例如,你可以通过数十种方法来生成随机密码。本文将介绍生成随机密码的十种方法。
1. 使用SHA算法来加密日期,并输出结果的前10个字符:
- [root@kafka60 shell]# date +%s |sha256sum |base64 |head -c 10 ;echo
- YTc4Mjk0Yj
2. 使用内嵌的/dev/urandom,并过滤掉那些日常不怎么使用的字符。这里也只输出结果的前32个字符:

- 1 #tr参数
- 2 -c或——complerment:取代所有不属于第一字符集的字符;
- 3 -d或——delete:删除所有属于第一字符集的字符;
- 4 1.生成10个小写字母
- 5 [root@kafka60 shell]# < /dev/urandom tr -dc a-z|head -c ${1:-10};echo
- 6 iprnfrqlhr
- 7 2.生成10个大写字母
- 8 [root@kafka60 shell]# < /dev/urandom tr -dc A-Z|head -c ${1:-10};echo
- 9 PSKSFZYQPH
- 10 3.生成10个数字
- 11 [root@kafka60 shell]# < /dev/urandom tr -dc 0-9|head -c ${1:-10};echo
- 12 7341384592
- 13 4.生成10个数字和大写字母的组合字符串
- 14 [root@kafka60 shell]# < /dev/urandom tr -dc 0-9-A-Z|head -c ${1:-10};echo
- 15 M6HP4LHTNJ
- 16 5.生成10个随机字符(包含数字,大写字母,小写字母)
- 17 [root@kafka60 shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z|head -c ${1:-10};echo
- 18 79JUYcjrjx
- 19 6.生成10个随机字符(包含数字,大写字母,小写字母)
- 20 [root@kafka60 shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z-|head -c ${1:-10};echo
- 21 JdOi4TMmZD
- 22 7.生成10个随机字符(包含数字,大写字母,小写字母,特殊字符)
- 23 [root@kafka60 shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-10};echo
- 24 s5-yTgMa8G

3. 使用openssl的随机函数

- [root@kafka60 shell]# openssl rand -base64 10
- 6kf9CHiiRgiSVQ==
- [root@kafka60 shell]# openssl rand -base64 10|tr A-Z a-z
- 1ivhbhsrvjsfsa==
- [root@kafka60 shell]# openssl rand -base64 32|tr A-Z a-z|cut -c 1-10
- hbxd/42tag

4. 这种方法类似于之前的urandom,但它是反向工作的。
- [root@kafka60 shell]# tr -cd '[:alnum:]' </dev/urandom |fold -w32|head -n1 ##-w32表示生成32个字符的宽度字符
- PezxAXSxVNKL3GQcjovgmoiIaDVByxXT
- [root@kafka60 shell]# tr -cd '[:alnum:]' </dev/urandom |fold -w10|head -n1
- b1r4qLm09S
5. 使用string命令,它从一个文件中输出可打印的字符串
- [root@kafka60 shell]# strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 32 | tr -d '\n'; echo
- zFSi9lMfBe6igWotELx0O85sx1hL2ux7
6. 这是使用urandom的一个更简单的版本

- [root@kafka60 shell]# </dev/urandom tr -dc _A-Z-a-z-0-9|head -c32;echo
- cBdmH-Y7fPzROb4pjCMV7CWK75OHcXgV
- [root@kafka60 shell]# </dev/urandom tr -dc a-z-0-9|head -c32;echo
- oyglc4qzbd54alegng40k0kvrb8m6q9k
- [root@kafka60 shell]# </dev/urandom tr -dc a-z-0-9|head -c10;echo
- qzghgesb2w

7. 使用非常有用的dd命令
- [root@kafka60 shell]# dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
- T5cfmBaTX1xcUo+aa4wK+XKF/ydh1VqovEyl8oCxmsw
- [root@kafka60 shell]# dd if=/dev/urandom bs=1 count=10 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
- KQqr7OPAoaHsIg=
8. 你甚至可以生成一个只用左手便可以输入的密码
- [root@kafka60 shell]# </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c32; echo
- xRzqRTxVwzt2eaa13Ad!Gbt2rsVBAf$r
- [root@kafka60 shell]# </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c10; echo
- !t#@C3@QTe
9、利用date命令实现
- [##root@ ~] date +%s%N
- [##root@ ~] date +%s |sha256sum |base64 |head -c ;echo
mysql实现:
- SELECT SUBSTRING(MD5(RAND()),1,20);
利用Linux系统生成随机密码的9种方法的更多相关文章
- 利用Linux系统生成随机密码的10种方法【转】
Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...
- 利用Linux系统生成随机密码的10种方法
Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...
- 利用Linux系统生成随机密码的8种方法
Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...
- PHP生成随机密码的4种方法及性能对比
PHP生成随机密码的4种方法及性能对比 http://www.php100.com/html/it/biancheng/2015/0422/8926.html 来源:露兜博客 时间:2015-04 ...
- 在Linux文件清空的几种方法
在Linux文件清空的几种方法 1.使用重定向的方法 [root@centos7 ~]# du -h test.txt 4.0K test.txt [root@centos7 ~]# > tes ...
- linux安装软件的几种方法----linux下编译安装软件的一般步骤
linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...
- linux替换字符串的几种方法
1. 基本替换:s/str1/str2/ 替换当前行第一个str1为str2:s/str1/str2/g 替换当前行所有str1为str2:n,$s/str1/str2/ 替换第 n 行开始到最后一行 ...
- Linux安装MySQL的两种方法
转载:http://blog.csdn.net/superchanon/article/details/8546254/ 1. 运行平台:CentOS 6.3 x86_64,基本等同于RH ...
- Linux添加系统调用的两种方法
前言 系统调用的基本原理 系统调用其实就是函数调用,只不过调用的是内核态的函数,但是我们知道,用户态是不能随意调用内核态的函数的,所以采用软中断的方式从用户态陷入到内核态.在内核中通过软中断0X80, ...
随机推荐
- .NET反编译工具 .net Reflector_8.3.0.95 下载激活
在网上找了很久,很多地方都没有注册机,终于机缘巧合下找到了这个有注册机的反编译工具,放于百度网盘,供大家下载 里面有包含如何破解,不过此处也多做一次解释: 注:1.记得断开网络 2.至于杀毒软件,我没 ...
- mongodb 使用
一.下载 MongoDB的官网是:http://www.mongodb.org/ MongoDB最新版本下载在官网的DownLoad菜单下:http://www.mongodb.org/downloa ...
- 用sublime server 启动本地服务器(手机访问电脑页面)
安装sublime server 插件包 1.Ctrl + shift + p install package ...
- TCP的粘包
产生原因: * tcp传输以字节流的方式发送消息,消息之间没有边界 * 发送比接受的速度快,因此不能保证每次都能及时被接收 影响 : 对每次发送的内容是一个独立的意思需要单独识别 如何处理: 1. 每 ...
- c++ rapidjson解析多层级json
如果一个层级为data,其内部又包含一个层级status, 可以直接通过这种方式来跨级访问: rapidjson::Value& val_status = doc["data&quo ...
- 让ASP.NET第一次请求不变慢
网页开发者早期最常遇到一个问题,当网站布署到IIS时候,每当IIS或是Application Pool重启后,第一位进入网站的使用者,其体验往往第一个反应就是网站很慢,然后就一直询问IT为什么网站这么 ...
- BZOJ5196: [Usaco2018 Feb]Taming the Herd(DP暴力)
5196: [Usaco2018 Feb]Taming the Herd Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 78 Solved: 71[ ...
- 每天一个linux命令:【转载】rm命令
今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除 ...
- Session学习
Session学习 Session的作用就是在服务器端保存一些用户的数据,然后传递给用户一个名字为JSESSIONID的Cookie,这个JESSIONID对应这个服务器中的一个Session对象,通 ...
- Nchan 实时消息 安全配置
备注: 即时消息的安全对于我们来说是比较重要的,作者在设计Nchan 的时候已经考虑了 a. nchan_authorize_request (Hooks and Callbacks)可以集成 ...