linux下随机数字的生成

简介:
方法一:
命令大致如下:
echo $((16#`dd if=/dev/urandom bs=1 count=4 2>/dev/null| od -A n -t x4|sed s/[^1-9a-fA-F]//g`))
 
分开来看:
echo $((16#ABC))  意思是将十六进制数ABC转换成十进制数
 
`command` 意思是两个`中间的命令执行结果做为外壳命令的参数
 
/dev/urandom 是个生成随机数的设备,比/dev/random稍不安全,但产生速度极快
 
dd if=/dev/urndom bs=1 count=4 从随机数设备中取前4个字节(32位数)
 
2>/dev/null 意思是将错误信息重定向到空设备中
 
od -A n -t x4 意思是将dd过来的数据(一个随机的32位值)进行转换输出,-A n是不输出偏移标志,-t x4是将数字用16进制输出,并且4个字节一组,这样就以16进制输出一个32位的数
 
sed s/[^1-9a-fA-F]//g 意思是去年输出文件中非十六进制可接受的字符(此例中主要是删除行前的空格,也可以用tr -d ' ' 或 awk '{print $1}'处理)
 
方法二:
date  --rfc-3339=ns|sed -n "s/.*\.0*\(.*\)+.*/\1/p"
 
利用date命令生成的纳秒数作为随机数
命令也可以用:
date  --rfc-3339=ns|sed "s/\.0*\|+/\n/g"|sed -e 1d -e 3d
date  --rfc-3339=ns|awk -F "[ \t.+]" '{printf("%d\n",$3)}'
 
可以用 echo 表达式|bc 生成特定运算结果,比如:
echo $((16#`dd if=/dev/urandom bs=1 count=4 2>/dev/null| od -A n -t x4|sed s/[^1-9a-fA-F]//g`)) %1024|bc 可以生成0-1023范围内的随机数




本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/172782,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
安全 JavaScript 前端开发
在Linux中生成随机数的各种方法
在计算机编程中,生成随机数是一项常见的任务,用于模拟实际情况、加密、游戏设计等。Linux系统提供了多种方法来生成随机数。本文将介绍Linux环境下生成随机数的几种常用方法,包括伪随机数生成器、/dev/random 和 /dev/urandom 设备、以及使用编程语言生成随机数。
434 3
|
Linux Shell
【Linux】一万七千字详解 —— 基本指令(二)2
【Linux】一万七千字详解 —— 基本指令(二)
88 0
【Linux】一万七千字详解 —— 基本指令(二)2
|
Linux Shell C语言
【Linux】一万七千字详解 —— 基本指令(二)
【Linux】一万七千字详解 —— 基本指令(二)
78 0
【Linux】一万七千字详解 —— 基本指令(二)
|
Linux Windows
【Linux】一万七千字详解 —— 基本指令(二)4
【Linux】一万七千字详解 —— 基本指令(二)
78 0
【Linux】一万七千字详解 —— 基本指令(二)4
|
缓存 Unix Linux
【Linux】一万七千字详解 —— 基本指令(二)3
【Linux】一万七千字详解 —— 基本指令(二)
333 0
【Linux】一万七千字详解 —— 基本指令(二)3
|
Linux 开发工具
linux创建随机数并写文件处理
一、案例代码 /**************************************************************** * Name   : rondom_create_score.
1041 0
|
Linux
oeasy 教您玩转 linux 010215 随机谚语 fortune
oeasy 教您玩转 linux 010215 随机谚语 fortune
240 0
|
安全 Oracle 关系型数据库
Linux下随机生成密码的命令总结
有时候经常为如何设置一个安全、符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结。终于有一天实在忍不住了,于是学习、整理了一下如何使用Linux下命令来随机生成安全、符合密码复杂度的命令。
1728 0
|
Linux 数据安全/隐私保护
linux 生成随机密码
yum install -y expect mkpasswd -l 8 -c 4 -C 0 -s 0
991 0
|
存储 Linux Perl
Linux生成随机数字和字符串
生成随机数字 使用系统的$RANDOM变量 > echo $RANDOM 14587 使用date +%s%N > date +%s%N 1529584024896587259 使用/dev/random 或 /dev/urandom/dev/random存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待,尽量避免使用。
1044 0