详解Linux如何生成随机数字和字符串

生成随机数字

1.使用系统的$RANDOM变量

> echo $RANDOM
14587 

2.使用date +%s%N

> date +%s%N
1529584024896587259

3.使用/dev/random 或 /dev/urandom

/dev/random存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待,尽量避免使用。

/dev/urandom非阻塞随机数发生器,读取操作不会产生阻塞。

> cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}'
1198074148

生成随机字符串

1.使用linux uuid,uuid全称是通用唯一识别码,格式包含32个16进制数字,以'-'连接号分为5段。形式为8-4-4-4-12 的32个字符。

> cat /proc/sys/kernel/random/uuid
6fcae1aa-ab46-435a-8531-250ccb54ed8e

2.使用md5sum

#使用date 生成10位随机字符串
> date +%s%N | md5sum | head -c 10
bb791e69d4

#使用 /dev/urandom生成10位随机字符串
> cat /dev/urandom | head -n 10 | md5sum | head -c 10
909587db4c

> head -c 10 /dev/random | base64
tBIDqQcaQ+qvkA==

3.使用openssl

> openssl rand -hex 10
3822e40bdcc2d1c6ee5f

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 分享Linux 系统生成随机密码的10种方法

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

  • 详解Linux下随机生成密码的命令总结

    有时候经常为如何设置一个安全.符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结.终于有一天实在忍不住了,于是学习.整理了一下如何使用Linux下命令来随机生成安全.符合密码复杂度的命令. 俗话说"工欲善其事必先利其器".如果能用挖土机的,你为什么要用锄头? 最近一直在反思自己:习惯性用原始.老旧的方式解决问题.而不擅长利用一些工具快捷.方便的解决问题.  1:mkpaswd命令  mkpasswd 是Linux自带的一个密码生成工

  • Linux Shell里面生成随机数的一些思路分析

    1.使用时间相关的随机数 利用data命令生成输出unixtimestamp(%s)和当前时间的纳秒数据(%N,精确到亿分之一秒.) 前者保证在不同秒数之内输出不重复 后者保证在同一秒内数字不重复 两者组合就可以了 复制代码 代码如下: date +%s%N 这个方法不依赖系统 只要时间不停止,就一直可以得到不重复的为随机数 2.系统shell内部变量 $RANDOM 这么没啥好说的  依赖shell 3.通过Linux的随机设备获取 然后算校验和 复制代码 代码如下: head -10 /de

  • linux shell实现随机数几种方法分享(date,random,uuid)

    在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签.呵呵,非常简单就可以实现.那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了.现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可以保证是唯一的了.好了,废话我就不说了.呵呵. shell脚本程序我们有那些获得随机数方法呢? 一.通过时间获得随机数(date) 这个也是我们经常用到的,可以说时间是唯一的,也不会重复的,从这个里面获得同一时间

  • Linux使用Cron+AT实现在某个确定的时间段内随机执行命令

    写了个脚本签到,但是不想总是在确定的时间签到,不然在数据库里面的记录太假了,所以需要在确定的时间段内,随机选个时间执行,最后想到了使用Cron+AT实现 思路很简单,就是cron设置一个起始时间,比如每天早上6点,在这个时间往后随机的2~350分钟里面去签到 那么只要这样 0 6 * * * echo 'sleep ' $(shuf -i 1-60 -n 1)';date >>/tmp/xxxx.txt' |at now + $(shuf -i 2-350 -n 1) min 之所以前面还加了

  • 详解Linux Shell 实现一个获取任意位数的随机密码的脚本

    Shell 命令行,实现一个获取任意位数的随机密码的脚本 每次我们想要获得一个密码的时候都很头疼,于是我之前自己用nodejs写了一个 Shell 脚本.这两天在学习 bash Shell 所以,想用同样的逻辑实现一个获取任意位数随机密码的脚本. 我成功了 :) 分析问题 我们假设我们需要的密码是大小写字母以及数字的组合,并且剔除掉 1,l,0,O,o 这些不便于认知的字符. 然后随机的读取其中的字符,组合成一个我们需要的密码,最后输出. 理顺了逻辑之后,我想到有下面的知识点是我之前不是很熟悉的

  • linux 随机密码生成工具mkpasswd详解及实例

    linux 随机密码生成工具mkpasswd详解及实例 mkpasswd命令生成随机复杂密码,前提安装expect,然后执行mkpasswd命令即可生成随机的密码. 一.基本的命令安装 安装expect: -l # (密码的长度定义, 默认是 9) -d # (数字个数, 默认是 2) -c # (小写字符, 默认是 3) -C # (大写字符, 默认是 2) -s # (特殊字符, 默认是 1) -v (详细...) -p prog (程序设置密码, 默认是 passwd) 详细参数,用如下命

  • 详解Linux如何生成随机数字和字符串

    生成随机数字 1.使用系统的$RANDOM变量 > echo $RANDOM 14587 2.使用date +%s%N > date +%s%N 1529584024896587259 3.使用/dev/random 或 /dev/urandom /dev/random存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待,尽量避免使用. /dev/urandom非阻塞随机数发生器,读取操作不会产生阻塞. > cat /dev/urandom | head -n 10

  • 详解Python中生成随机数据的示例详解

    目录 随机性有多随机 加密安全性 PRNG random 模块 数组 numpy.random 相关数据的生成 random模块与NumPy对照表 CSPRNG 尽可能随机 os.urandom() secrets 最佳保存方式 UUID 工程随机性的比较 在日常工作编程中存在着各种随机事件,同样在编程中生成随机数字的时候也是一样,随机有多随机呢?在涉及信息安全的情况下,它是最重要的问题之一.每当在 Python 中生成随机数据.字符串或数字时,最好至少大致了解这些数据是如何生成的. 用于在 P

  • MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法

    上一篇介绍了如何在 Oracle 生成随机数字.字符串.日期.验证码以及 UUID,今天我们继续讨论在 MySQL 中生成各种随机数据的方法.

  • Oracle生成随机数字、字符串、日期、验证码及 UUID的方法

    在日常生活中,随机数对于我们而言并不陌生,例如手机短信验证码就是一个随机的数字字符串:对于统计分析.机器学习等领域而言,通常也需要生成大量的随机数据用于测试.数据抽样.算法验证等.那么今天我们就来谈谈如何在 Oracle 数据库中生成随机数据.

  • 详解Linux动态库生成与使用指南

    Linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件. 在链接动态库生成可执行文件时,并不会把动态库的代码复制到执行文件中,而是在执行文件中记录对动态库的引用. 程序执行时,再去加载动态库文件.如果动态库已经加载,则不必重复加载,从而能节省内存空间. Linux下生成和使用动态库的步骤如下: 编写源文件. 将一个或几个源文件编译链接,生成共享库. 通过 -L<path> -lxxx 的gcc选项链接生成的libxxx.so

  • 详解linux SSH登录流程

    本文给大家详细介绍了ssh 密钥登录远程服务器流程和注意事项,以下是详细内容: 密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到密钥对.整个登录流程如下: 远程服务器持有公钥,当有用户进行登录,服务器就会随机生成一串字符串,然后发送给正在进行登录的用户. 用户收到远程服务器发来的字符串,使用与远程服务器公钥配对的私钥对字符串进行加密,再发送给远程服务器. 服务器使用公钥对用户发来的加密字符串进行解密,得到的解密字符串如果与第一步中发送给客户端的随机字符串一样,那么判断为登

  • 详解Linux定时任务Crontab的介绍与使用

    目录 一.cron介绍 二.crontab的使用 三.常见定时任务设置 四.实例操作 1.文件实时写入 2. 定期清理对应目录下的文件 五.常见错误 一.cron介绍 linux内置的cron进程能帮我们实现这些需求,cron搭配shell脚本,非常复杂的指令也没有问题. 1. var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名 2. _/etc/crontab 这个文件负责调度各种管理和维护任务. 3. /etc/cron.d/

  • 详解Linux 主机网络接入配置

    详解Linux 主机网络接入配置 前言: 网络配置是我们在安装好操作系统之后,需要解决的第一步.现时代没有接入网络的主机已然等同于一堆废铁.在网络配置的过程中,通常我们需要配置本机IP地址,缺省网关,DNS,主机名等等.本文主要描述在Linux环境下,主要以传统命令行方式讲解如何将主机接入网络.对于网路配置的新命令如ip,nmcli等等在以后的文章中描述. 一.网络配置概述 主机接入互联网前提:遵循TCP/IP协议栈 配置主机接入TCP/IP网络需要配置的内容:   IP/Netmask   路

  • 详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径 [root@node001 ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [root@node001 ~]# echo $PATH /usr/local/sbin:

  • 详解linux驱动编写(入门)

    在我离职之前,工作内容几乎不涉及到驱动方面的知识.我所要做的内容就是把客户对设备的请求拆分成一个一个的接口,调用驱动的设置进行配置就可以了.当然,至于驱动下面是怎么实现那就要根据具体情况而定了.比如说,有的驱动是芯片厂商直接写好的,假设芯片厂商提供了对应平台的sdk函数,那么驱动的工作就是对这些sdk函数进行封装就可以了,另外一种就是自己编写具体平台的驱动接口了.比如说,现在你需要编写串口.i2c.i2s.FLASH.网卡.LCD.触摸屏.USB驱动了.这个时候,你手里面除了一堆芯片手册,啥也没

随机推荐