linux 获取随机数的办法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 获取随机数的办法相关的知识,希望对你有一定的参考价值。
对于刚学linux的我,尽力去弄清楚每一个点,记录收藏每个好的博文。摘自:https://blog.csdn.net/yuki5233/article/details/82997001#openssl_45
第一种:通过内部系统变量($RANDOM)
![技术图片](https://s1.51cto.com/images/blog/201904/01/9a0ff8a2112daba26622270a574e35c4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1、产生0-25范围内的数,用这个环境变量对26取余即可。
![技术图片](https://s1.51cto.com/images/blog/201904/01/b5464ce3a38fd5cb43bb697611545f58.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2、产生6位数的整数,用这个环境变量加上100000即可。
![技术图片](https://s1.51cto.com/images/blog/201904/01/88f1c58fca257962f1806cddbc88cdaa.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3、 产生加密的随机数码,将随机数管道给命令md5sum命令即可。
![技术图片](https://s1.51cto.com/images/blog/201904/01/f172d149d7543d8162805cca1b879fd8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
- 需要固定位数的随机数码,将随机数管道给命令md5sum命令再管道给cut命令即可。
RANDOM的随机数范围为0~32767,因此,加密性不是很好,可以通过在随机数后增加加密字符串(就是和密码生成有关的字符串)的方式解决,最后再一起执行md5sum操作并截取结果的后n位,这样一来,就无法根据随机范围0~32767猜出具体结果了。
第二种:通过openssl产生随机数
第三种:通过时间命令date产生随机数
第四种:借助/dev/urandom设备
第五种:通过/dev/random设备产生uuid
第六种:expect非交互式程序控制下用mkpasswd命令
以上是关于linux 获取随机数的办法的主要内容,如果未能解决你的问题,请参考以下文章