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

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

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

[[email protected] 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 [[email protected] shell]# < /dev/urandom tr -dc a-z|head -c ${1:-10};echo
 6 iprnfrqlhr
 7 2.生成10个大写字母
 8 [[email protected] shell]# < /dev/urandom tr -dc A-Z|head -c ${1:-10};echo
 9 PSKSFZYQPH
10 3.生成10个数字
11 [[email protected] shell]# < /dev/urandom tr -dc 0-9|head -c ${1:-10};echo
12 7341384592
13 4.生成10个数字和大写字母的组合字符串
14 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z|head -c ${1:-10};echo
15 M6HP4LHTNJ
16 5.生成10个随机字符(包含数字,大写字母,小写字母)
17 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z|head -c ${1:-10};echo
18 79JUYcjrjx
19 6.生成10个随机字符(包含数字,大写字母,小写字母)
20 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z-|head -c ${1:-10};echo
21 JdOi4TMmZD
22 7.生成10个随机字符(包含数字,大写字母,小写字母,特殊字符)
23 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-10};echo
24 s5-yTgMa8G

3. 使用openssl的随机函数

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

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

[[email protected] shell]# tr -cd ‘[:alnum:]‘ </dev/urandom |fold -w32|head -n1         ##-w32表示生成32个字符的宽度字符
PezxAXSxVNKL3GQcjovgmoiIaDVByxXT
[[email protected] shell]# tr -cd ‘[:alnum:]‘ </dev/urandom |fold -w10|head -n1
b1r4qLm09S

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

[[email protected] shell]# strings /dev/urandom | grep -o ‘[[:alnum:]]‘ | head -n 32 | tr -d ‘\n‘; echo
zFSi9lMfBe6igWotELx0O85sx1hL2ux7

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

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

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

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

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

[[email protected] shell]# </dev/urandom tr -dc ‘[email protected]#$%qwertQWERTasdfgASDFGzxcvbZXCVB‘ | head -c32; echo
xRzqRTxVwzt2eaa13Ad!Gbt2rsVBAf$r
[[email protected] shell]# </dev/urandom tr -dc ‘[email protected]#$%qwertQWERTasdfgASDFGzxcvbZXCVB‘ | head -c10; echo
!t#@[email protected]

9、利用date命令实现

[#18#[email protected] ~] date +%s%N
[#18#[email protected] ~] date +%s |sha256sum |base64 |head -c 20 ;echo

mysql实现:

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

原文地址:https://www.cnblogs.com/hnhycnlc888/p/10074735.html

时间: 2024-11-08 21:24:33

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

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

通常情况下大家生成密码都好困惑,一来复杂程度不够会不安全,复杂程度够了又不能手动随便敲击键盘打出一同字符(但通常情况下这些字符是有规律的),使用1password 或者 keepass 这种软件生成也可以,不过貌似1password 要收费,既然这样我们就玩一下好玩的用 linux 来生成随机密码玩玩吧; Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,

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

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

Linux更新内核的三种方法

Centos内核升级的三种方法 在基于CentOS平台的工作过程中,难免有时需要升级或者降级内核以验证功能.调试性能或者更新整个系统.如果从头重新编译一个内核,由于现在内核特性越来越复杂,依赖的库或者工具也不少,加之重新编译耗时不菲,了解更新内核的多种方式就显得尤为必要.下面根据笔者最近的工作,总结了三种方法,供大家参考. 方法一 如果机器不能联网,可以下载现有内核包到本地机器,直接在本地更新 1.从http://ftp.scientificlinux.org/linux/scientific/

Linux安装MySQL的两种方法

转载:http://blog.csdn.net/superchanon/article/details/8546254/ 1.       运行平台:CentOS 6.3 x86_64,基本等同于RHEL 6.3 2.       安装方法: 安装MySQL主要有两种方法:一种是通过源码自行编译安装,这种适合高级用户定制MySQL的特性,这里不做说明:另一种是通过编译过的二进制文件进行安装.二进制文件安装的方法又分为两种:一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz

asp.net mvc3利用Areas分离前后台的4种方法

一.引言 : 为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际的开发中,随着项目规模的不断扩大,Controller控制器也随之不断增多.如果在Controllers文件夹下面有超过两位数controller,即便采用良好的命名规范,或者用子文件夹的形式区分不同功能的控制器,还是会影响项目的可阅读性和可维护性.因此,在一些场景下,如果能把与某功能

QT下实现对Linux Shell调用的几种方法

使用QProcess QThread ============================================ #include <QProcess>int main(){QProcess::execute("ls");return 0;} ============================================   QProcess *poc = new QProcess; poc-> start( "ping 222.20

Linux下产生随机密码的7种方法

1 [[email protected] ~]# date +%s | sha256sum | base64 | head -c 32 ; echo M2U0YTllN2I1NzZjNTNjZDZhYzM5NzIz 2 [[email protected] ~]# < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo; 1jmWHhn9XwSOwv-1h_8DGjXFrX4lVAHf 3 [[email protected] ~]#

Linux 下系统调用的三种方法

系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU.磁盘.打印机等)进行交互提供的一组接口.当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系统调用函数.下面介绍Linux 下三种发生系统调用的方法: 通过 glibc 提供的库函数 glibc 是 Linux 下使用的开源的标准 C 库,它是 GNU 发布的 libc 库,即运行时库.glibc 为程序员提供丰富的 API(Application Programming Interfac

php生成随机密码的几种方法

文章来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/523 使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码.随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考. 方法一: 1.在 33 – 126 中生成一个随机整数,如 35, 2.将 35 转换成对应的ASCII码字符,如 35 对应 # 3.重复以上 1.2 步骤 n 次