openwrt生成随机数记录

1.普通的linux随机数可以用/bin/bash内置的环境变量解决,

例如: echo ${RAMDOM}

或者用时间戳和纳秒数解决:

例如echo `date +%s`

echo `date +%N`


2.openwrt中没有纳秒, 时间戳的话一秒钟才变化一次, 对于随机数来说变化太慢,

但是openwrt中有/dev/uramdom和/dev/ramdom这两个随机数发生器,

两者的原理是将系统的噪声作为变量(系统噪声和当时的电源噪声、进程、环境温度、电磁干扰有一定的关系)进行一定的运算得到,这是两个优秀的随机数发生器

 两者的区别是: /dev/ramdom是阻塞型的, /dev/uramdom是非阻塞型

因此生成随机数的代码可以是这样

echo `head -n 128 /dev/urandom | tr -dc "0123456789" | head -c3`


3.用于IP地址的随机数可以这样得到:

echo `expr $(head -n 128 /dev/urandom | tr -dc "0123456789" | head -c4) % 255`



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值