我是靠谱客的博主 忧郁酸奶,最近开发中收集的这篇文章主要介绍随机数获取6中方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(1)通过内部系统变量($RANDOM)

echo $RANDOM

生成0-32767之间的整数随机数,若超过5位可以加个固定10位整数,然后进行求余。生成400000~500000的随机数:

随机数取出10位字符: echo $RANDOM |md5sum |cut -c 1-10

(2)通过时间获得随机数(date)

GNU的date提供+%s(小写s), 能打印出自1970-01-01 00:00:00到当前时间的秒数

%N纳秒

date +%s%N       #生成19位随机数字

(3)通过系统内唯一数据生成随机数(/dev/random及/dev/urandom)

/dev/urandom是非阻塞的随机数产生器,读取时不会产生阻塞,速度更快、安全性较差的随机数发 生器。

head /dev/urandom |cksum

配合MD5sum : head /dev/urandom |cksum |md5sum

(4)读取linux的uuid码

(1)通过内部系统变量($RANDOM)

echo $RANDOM

生成0-32767之间的整数随机数,若超过5位可以加个固定10位整数,然后进行求余。生成400000~500000的随机数:

随机数取出10位字符: echo $RANDOM |md5sum |cut -c 1-10

(2)通过时间获得随机数(date)

GNU的date提供+%s(小写s), 能打印出自1970-01-01 00:00:00到当前时间的秒数

%N纳秒

date +%s%N       #生成19位随机数字

(3)通过系统内唯一数据生成随机数(/dev/random及/dev/urandom)

/dev/urandom是非阻塞的随机数产生器,读取时不会产生阻塞,速度更快、安全性较差的随机数发 生器。

head /dev/urandom |cksum

配合MD5sum : head /dev/urandom |cksum |md5sum

(4)读取linux的uuid码

 UUID码全称是通用唯一识别码 (Universally Unique Identifier, UUID),UUID格式是:含32个16进制数字,以“-”连接号分为五段,形式为8-4-4-4-12的32个字符。linux的uuid码也是有内核提供的,在/proc/sys/kernel/random/uuid这个文件内。cat/proc/sys/kernel/random/uuid每次获取到的数据都会不同。

cat /proc/sys/kernel/random/uuid| cksum | cut -f1 -d" "    #获取不同的随机整数,1675034933

       cat /proc/sys/kernel/random/uuid| md5sum | cut -c1-8    #数字加字母的随机数,d69a7ebf

(5)、使用expect附带的mkpassword生成随机数

-l # (length of password, default = 7) 指定密码的长度,默认是7位数

-d # (min # of digits, default = 2)  指定密码中数字最少位数,默认是2位

-c # (min # of lowercase chars, default = 2) 指定密码中小写字母最少位数,默认是2位

-C # (min # of uppercase chars, default = 2)指定密码中大写字母最少位数,默认是2位

-s # (min # of special chars, default = 1)指定密码中特殊字符最少位数,默认是1位

(6)、使用Openssl 产生随机数

opensll rand -base64 8

opnesll radn -base64 80

 UUID码全称是通用唯一识别码 (Universally Unique Identifier, UUID),UUID格式是:含32个16进制数字,以“-”连接号分为五段,形式为8-4-4-4-12的32个字符。linux的uuid码也是有内核提供的,在/proc/sys/kernel/random/uuid这个文件内。cat/proc/sys/kernel/random/uuid每次获取到的数据都会不同。

      cat /proc/sys/kernel/random/uuid| cksum | cut -f1 -d" "    #获取不同的随机整数,1675034933

       cat /proc/sys/kernel/random/uuid| md5sum | cut -c1-8    #数字加字母的随机数,d69a7ebf

(5)、使用expect附带的mkpassword生成随机数

-l # (length of password, default = 7) 指定密码的长度,默认是7位数

-d # (min # of digits, default = 2)  指定密码中数字最少位数,默认是2位

-c # (min # of lowercase chars, default = 2) 指定密码中小写字母最少位数,默认是2位

-C # (min # of uppercase chars, default = 2)指定密码中大写字母最少位数,默认是2位

-s # (min # of special chars, default = 1)指定密码中特殊字符最少位数,默认是1位

(6)、使用Openssl 产生随机数

   opensll rand -base64 8    

    opnesll radn -base64 80

最后

以上就是忧郁酸奶为你收集整理的随机数获取6中方法的全部内容,希望文章能够帮你解决随机数获取6中方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部