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

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

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

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

 #tr参数
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
.生成10个小写字母
[root@kafka60 shell]# < /dev/urandom tr -dc a-z|head -c ${:-};echo
iprnfrqlhr
.生成10个大写字母
[root@kafka60 shell]# < /dev/urandom tr -dc A-Z|head -c ${:-};echo
PSKSFZYQPH
.生成10个数字
[root@kafka60 shell]# < /dev/urandom tr -dc -|head -c ${:-};echo .生成10个数字和大写字母的组合字符串
[root@kafka60 shell]# < /dev/urandom tr -dc --A-Z|head -c ${:-};echo
M6HP4LHTNJ
.生成10个随机字符(包含数字,大写字母,小写字母)
[root@kafka60 shell]# < /dev/urandom tr -dc --A-Z-a-z|head -c ${:-};echo
79JUYcjrjx
.生成10个随机字符(包含数字,大写字母,小写字母)
[root@kafka60 shell]# < /dev/urandom tr -dc --A-Z-a-z-|head -c ${:-};echo
JdOi4TMmZD
.生成10个随机字符(包含数字,大写字母,小写字母,特殊字符)
[root@kafka60 shell]# < /dev/urandom tr -dc --A-Z-a-z-/|head -c ${:-};echo
s5-yTgMa8G

3. 使用openssl的随机函数

[root@kafka60 shell]# openssl rand -base64
6kf9CHiiRgiSVQ==
[root@kafka60 shell]# openssl rand -base64 |tr A-Z a-z
1ivhbhsrvjsfsa==
[root@kafka60 shell]# openssl rand -base64 |tr A-Z a-z|cut -c -
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  | tr -d '\n'; echo
zFSi9lMfBe6igWotELx0O85sx1hL2ux7

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

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

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

[root@kafka60 shell]# dd if=/dev/urandom bs= count= >/dev/null | base64 -w  | rev | cut -b - | rev
T5cfmBaTX1xcUo+aa4wK+XKF/ydh1VqovEyl8oCxmsw
[root@kafka60 shell]# dd if=/dev/urandom bs= count= >/dev/null | base64 -w | rev | cut -b - | 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

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

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

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

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

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

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

    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. Java 关于finally、static

    论坛上看到的两道题目,如下: //为啥运行结果是1 0 不是 0 0呢 谁能解释下啊 public class FinallyDemo { static int value = 0; static i ...

  2. e644. 处理Action事件

    Action events are fired by subclasses of AbstractButton and includes buttons, checkboxes, and menus. ...

  3. Google Analytics10条有用教程(转)

    几乎每个网站都会统计自身的浏览状况:日IP.PV.跳出率.转换率.浏览者属性等等.了解这些数据有助于更好地了解浏览者的属性.知道网站在什么地方存在缺陷,为更好地提供服务.提高网站收入都有所帮助. 对于 ...

  4. C#实现大数相加

    在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...

  5. simple fix 主从不一致滴error

    Last_SQL_Error: Error 'Unknown table 'bb'' on query. Default database: 'test'. Query: 'DROP TABLE `b ...

  6. 深入分析JavaWeb Item43 -- Struts2开发入门

    一.Struts2概述 1.Struts2是什么? Struts2是一个M(模型-域–范围模型)V(View视图)C(控制器)框架(模型2).框架都是一个半成品. 提高开发效率. Struts1是一个 ...

  7. 微软Azure、谷歌GAE、亚马逊AWS比較

       谷歌Google App Engine 亚马逊AWS 微软Microsoft Azure 提供服 务类型 PaaS, SaaS Iaas, PaaS IaaS, PaaS, SaaS 服务间 ...

  8. POJ 1018 Communication System(树形DP)

    Description We have received an order from Pizoor Communications Inc. for a special communication sy ...

  9. jquery书写左右两个多选下拉列表交换移除功能

    使用jquery做一个多选列表左右互换的功能,代码如下 <!DOCTYPE HTML> <html lang="en-US"> <head> & ...

  10. Windows10下安装python(配置环境变量)

    从官网下载Windows下的python版本,一路按照默认进行安装. 安装之后配置环境变量的步骤如下: 1,点“我的电脑”,右键选“属性”. 2,选择“高级系统设置”--->选“环境变量”--- ...