首先简单了解一下,OpenSSL 是一个开源项目,其组成主要包括一下三个组件:
1、openssl:多用途的命令行工具
2、libcrypto:加密算法库
3、libssl:加密模块应用库,实现了ssl及tls
openssl可以实现:秘钥证书管理、对称加密和非对称加密,还有一个功能容易被忽略,那就是生成随机字符,而我们这要介绍的就是使用openssl命令行生成随机字符 。
然后需要了解的是Base64编码格式,它是一种在应用程序和不同系统中使用的编码格式,可以毫无问题地进行传输和使用。 Base64不提供控制字符。 我们可以使用openssl rand生成与Base64兼容的随机数。
openssl rand 命令用于产生指定长度个bytes的随机字符。
那么,生成随机密码的命令为
openssl rand -base64 x(字节数量)
-base64是指定编码,不然会生成我们不需要的字符集
至于为什么最终生成的字符数展示不是指定的数,是因为指定生成了的x位的字节,然后编码成了base64。想要取随机数还需要用到cut命令。
比如我们需要在生成的随机字符中截取10位
openssl rand -base64 40 |sed ‘s#[^a-z]##g’ | cut -c 2-11
cut命令用于显示每行从开头算起 num1 到 num2 的文字。
-c :以字符为单位进行分割。
另外,这里的sed表示替换非小写字符,命令如下
openssl rand -base64 45 |sed ‘s#[^a-z]##g’
版权声明:本文为m0_61503020原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。