如何用OpenSSL生成随机数和密码

OpenSSL是用于安全相关工作的强大库和工具集。在谈到安全性时,我们不能否认密码和随机数是重要的课题。在本教程中,我们将学习如何使用OpenSSL生成随机数和密码。

null

生成Base64随机数

Base64是应用程序和不同系统中使用的一种编码格式,可以毫无问题地进行传输和使用。Base64不提供控制字符。我们可以用 openssl rand . 这里我们设置字符计数 10 这是最后一个参数。

$ openssl rand -base64 10
Generate Base64 Random Numbers
生成Base64随机数

生成十六进制随机数

十六进制是一种基于 16 . 我们可以用 -hex 选项。在本例中,我们将生成20个字符的随机十六进制数。

$ openssl rand -hex 20
Generate Hexadecimal Random Numbers
生成十六进制随机数

写入文件

的默认行为 rand 正在将生成的随机数写入终端。如果我们需要很多数字 256 候机楼会乱七八糟的。我们可以选择写生成的随机数。我们将使用 -out 选项和文件名。在本例中,我们将编写一个名为 myrand.txt

$ openssl rand -out myrand.txt -hex 20

使用发动机或硬件进行试验

安全专家将随机数发生器分为两类。

  • Truly Random Number Generator (TRNG) 其中生成的数字是真正随机的,通常使用特殊的硬件。
  • Psedeu Random Number Generator (PRNG) 生成的数字不是真正随机的,而是接近随机的。这种类型不需要特殊的硬件和操作系统,比如Linux、Windows和OpenSSL默认使用这种类型。

相关文章: Linux下dd命令的备份实例

如果我们有特殊的加密硬件或TRNG引擎,我们可以将其与OpenSSL结合使用来生成随机数TRNG。我们将使用 -engine 选项和设备路径。如果我们的设备位于 /dev/crypt0 我们可以使用以下命令

$ openssl rand -engine /dev/crypt0 -hex 20

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享