关注+星标,干货第一时间送达

日常开发中,随机数的使用,
经常能遇到。
比如,给客户或者某一实体,加唯一标识,
通常是时间戳,搭配随机字符,
生成一个30位,或者32位的字符串,
亦或是18位,或者15位的数字。
具体长度,就看各自的业务需求了。
在java中,我们常使用 Random() 类获取随机数,
python中,则使用 random 模块获取。
那么,linux中呢?
解决方案
演示工具:Centos7.9 + MobaXterm
linux 中获取随机数方法不少,
咱们来看个常用的方法。
通过系统变量 $RANDOM
[jack@jenkins shell-demo]$ echo $RANDOM
输出:

但是,系统变量 RANDOM 获得的随机数范围是:0 ~ 32767,
范围不大。
我们可以再增加一层加密,然后截取所需的长度即可,效果如下:
[jack@jenkins shell-demo]$ echo $RANDOM | md5sum | cut -c 1-18
输出:

这里获取的是随机字符串,如果想要随机数,则不用 md5sum。
用 cksum 就行,方法类似:

【扩展】
上面的 md5sum,是linux中计算和校验文件的工具。
比如一个文件前后不一致,md5sum是可以检测出来的,
比如:
有 a.txt 文件,内容如下

使用md5sum,生成md5文件
[jack@jenkins shell-demo]$ md5sum a.txt > a.txt.md5
结果:

使用 md5sum,校验md5文件
[jack@jenkins shell-demo]$ md5sum -c a.txt.md5
结果:

然后修改源文件 a.txt 的内容

再使用md5校验

就会校验不通过了!
OK,这就是本期的内容了,下期再见!
文章转载自皮皮克克,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




