专栏首页jouypubLinux生成随机数字和字符串
原创

Linux生成随机数字和字符串

生成随机数字

1、使用系统的$RANDOM变量

> echo $RANDOM  
14587  

2、使用date +%s%N

> date +%s%N
1529584024896587259

3、使用/dev/random 或 /dev/urandom

/dev/random存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待,尽量避免使用。

/dev/urandom非阻塞随机数发生器,读取操作不会产生阻塞。

> cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}'
1198074148

生成随机字符串

1、使用linux uuid,uuid全称是通用唯一识别码,格式包含32个16进制数字,以'-'连接号分为5段。形式为8-4-4-4-12 的32个字符。

> cat /proc/sys/kernel/random/uuid
6fcae1aa-ab46-435a-8531-250ccb54ed8e

2、使用md5sum

#使用date 生成10位随机字符串  
> date +%s%N | md5sum | head -c 10
bb791e69d4

#使用 /dev/urandom生成10位随机字符串  
> cat /dev/urandom | head -n 10 | md5sum | head -c 10
909587db4c

> head -c 10 /dev/random | base64
tBIDqQcaQ+qvkA==

3、使用openssl

> openssl rand -hex 10
3822e40bdcc2d1c6ee5f
欢迎订阅「K叔区块链」 - 专注于区块链技术学习

博客地址:http://www.jouypub.com

简书主页:https://www.jianshu.com/u/756c9c8ae984

segmentfault主页:https://segmentfault.com/blog/jouypub

腾讯云主页:https://cloud.tencent.com/developer/column/72548

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 区块链之密码学随机数

    其定义为随机样本不可重现。实际上只要给定边界条件,真随机数实际上并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉,可以认为用这个方法演算出来了...

    JouyPub
  • MySQL实现阶段累加的sql写法

      最近有一个需求:统计每日充值/消费之后的余额,对于这种需求,其实也很简单,只需要在每次充值/消费后,计算下余额,然后保存下来就可以了。但是对于这种需求,一条...

    JouyPub
  • Linux下的简易计算器

    在Linux下,当我们要随手计算一些数值,是不是第一反应要打开python交互命令行,其实有更简便的计算方法,下面来一一介绍

    JouyPub
  • 详解Linux如何生成随机数字和字符串

    /dev/random存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待,尽量避免使用。

    砸漏
  • linux系统编程之文件与I/O(四):文件的属性

    一、读取文件元数据 int stat(const char *path, struct stat *buf); int fstat(int fd, struc...

    s1mba
  • Nexus5 bootloader内容初探及延伸思考编译使用

    在Android启动过程分析-从按下电源键到第一个用户进程[转载]中,我们知道BootLoader是在操作系统前执行的程序,有没有很好奇它到底有些啥内容呢?

    用户2930595
  • 安装stress模拟linux系统资源消耗

    1、安装yum源:yum install epel-release -y 2、安装stress:yum install stress -y 3、使用样例:str...

    一夕如环
  • Python|恶搞C盘

    在烦劳日常生活中,为了给平凡的生活增添乐趣,常常会和朋友开一些玩笑。除了现实中的玩笑,对于学程序的人来说,自然也少不了网上的玩笑,所以今天小编给大家分享一个用p...

    算法与编程之美
  • 本体技术视点 | 去中心化身份即元平台:合作的力量(二)

    https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/Coope...

    本体Ontology
  • Ubuntu16.04 配置OpenCV3.4.2及基本使用

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效...

    FPGA开源工作室

扫码关注云+社区

领取腾讯云代金券