Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它。例如,你可以通过数十种方法来生成随机密码。本文将介绍生成随机密码的十种方法。

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

  1. [root@kafka60 shell]# date +%s |sha256sum |base64 |head -c 10 ;echo
  2. YTc4Mjk0Yj

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

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

3. 使用openssl的随机函数

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

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

  1. [root@kafka60 shell]# tr -cd '[:alnum:]' </dev/urandom |fold -w32|head -n1 ##-w32表示生成32个字符的宽度字符
  2. PezxAXSxVNKL3GQcjovgmoiIaDVByxXT
  3. [root@kafka60 shell]# tr -cd '[:alnum:]' </dev/urandom |fold -w10|head -n1
  4. b1r4qLm09S

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

  1. [root@kafka60 shell]# strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 32 | tr -d '\n'; echo
  2. zFSi9lMfBe6igWotELx0O85sx1hL2ux7

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

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

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

  1. [root@kafka60 shell]# dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
  2. T5cfmBaTX1xcUo+aa4wK+XKF/ydh1VqovEyl8oCxmsw
  3. [root@kafka60 shell]# dd if=/dev/urandom bs=1 count=10 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
  4. KQqr7OPAoaHsIg=

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

  1. [root@kafka60 shell]# </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c32; echo
  2. xRzqRTxVwzt2eaa13Ad!Gbt2rsVBAf$r
  3. [root@kafka60 shell]# </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c10; echo
  4. !t#@C3@QTe

9、利用date命令实现

  1. [##root@ ~] date +%s%N
  2. [##root@ ~] date +%s |sha256sum |base64 |head -c ;echo

mysql实现:

  1. SELECT SUBSTRING(MD5(RAND()),1,20);

利用Linux系统生成随机密码的9种方法的更多相关文章

  1. 利用Linux系统生成随机密码的10种方法【转】

    Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...

  2. 利用Linux系统生成随机密码的10种方法

    Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...

  3. 利用Linux系统生成随机密码的8种方法

    Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...

  4. PHP生成随机密码的4种方法及性能对比

    PHP生成随机密码的4种方法及性能对比 http://www.php100.com/html/it/biancheng/2015/0422/8926.html 来源:露兜博客   时间:2015-04 ...

  5. 在Linux文件清空的几种方法

    在Linux文件清空的几种方法 1.使用重定向的方法 [root@centos7 ~]# du -h test.txt 4.0K test.txt [root@centos7 ~]# > tes ...

  6. linux安装软件的几种方法----linux下编译安装软件的一般步骤

    linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...

  7. linux替换字符串的几种方法

    1. 基本替换:s/str1/str2/ 替换当前行第一个str1为str2:s/str1/str2/g 替换当前行所有str1为str2:n,$s/str1/str2/ 替换第 n 行开始到最后一行 ...

  8. Linux安装MySQL的两种方法

    转载:http://blog.csdn.net/superchanon/article/details/8546254/ 1.       运行平台:CentOS 6.3 x86_64,基本等同于RH ...

  9. Linux添加系统调用的两种方法

    前言 系统调用的基本原理 系统调用其实就是函数调用,只不过调用的是内核态的函数,但是我们知道,用户态是不能随意调用内核态的函数的,所以采用软中断的方式从用户态陷入到内核态.在内核中通过软中断0X80, ...

随机推荐

  1. .NET反编译工具 .net Reflector_8.3.0.95 下载激活

    在网上找了很久,很多地方都没有注册机,终于机缘巧合下找到了这个有注册机的反编译工具,放于百度网盘,供大家下载 里面有包含如何破解,不过此处也多做一次解释: 注:1.记得断开网络 2.至于杀毒软件,我没 ...

  2. mongodb 使用

    一.下载 MongoDB的官网是:http://www.mongodb.org/ MongoDB最新版本下载在官网的DownLoad菜单下:http://www.mongodb.org/downloa ...

  3. 用sublime server 启动本地服务器(手机访问电脑页面)

    安装sublime server 插件包           1.Ctrl + shift + p                      install package               ...

  4. TCP的粘包

    产生原因: * tcp传输以字节流的方式发送消息,消息之间没有边界 * 发送比接受的速度快,因此不能保证每次都能及时被接收 影响 : 对每次发送的内容是一个独立的意思需要单独识别 如何处理: 1. 每 ...

  5. c++ rapidjson解析多层级json

    如果一个层级为data,其内部又包含一个层级status, 可以直接通过这种方式来跨级访问: rapidjson::Value& val_status = doc["data&quo ...

  6. 让ASP.NET第一次请求不变慢

    网页开发者早期最常遇到一个问题,当网站布署到IIS时候,每当IIS或是Application Pool重启后,第一位进入网站的使用者,其体验往往第一个反应就是网站很慢,然后就一直询问IT为什么网站这么 ...

  7. BZOJ5196: [Usaco2018 Feb]Taming the Herd(DP暴力)

    5196: [Usaco2018 Feb]Taming the Herd Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 78  Solved: 71[ ...

  8. 每天一个linux命令:【转载】rm命令

    今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除 ...

  9. Session学习

    Session学习 Session的作用就是在服务器端保存一些用户的数据,然后传递给用户一个名字为JSESSIONID的Cookie,这个JESSIONID对应这个服务器中的一个Session对象,通 ...

  10. Nchan 实时消息 安全配置

    备注:     即时消息的安全对于我们来说是比较重要的,作者在设计Nchan 的时候已经考虑了 a. nchan_authorize_request (Hooks and Callbacks)可以集成 ...