26 lines
923 B
Markdown
26 lines
923 B
Markdown
![]() |
# linux随机数设备
|
||
|
从系统熵池进行获取
|
||
|
|
||
|
## index
|
||
|
- [random-urandom](# random-urandom)
|
||
|
- [note](# note)
|
||
|
|
||
|
## random-urandom
|
||
|
/dev/random 和 /dev/urandom 的区别
|
||
|
+ /dev/random:
|
||
|
- 阻塞型设备,当熵池耗尽时会阻塞,直到收集到足够的熵
|
||
|
- 适合生成高价值的密钥、证书等
|
||
|
- 可能会影响性能,因为可能需要等待
|
||
|
|
||
|
+ /dev/urandom:
|
||
|
- 非阻塞型设备,即使熵池耗尽也会继续提供数据
|
||
|
- 使用加密算法从初始熵生成伪随机数
|
||
|
- 对于大多数应用来说已经足够安全
|
||
|
- 推荐在大多数情况下使用
|
||
|
|
||
|
## note
|
||
|
- 对于大多数应用,使用 /dev/urandom 就足够了,它不会阻塞且性能更好
|
||
|
- 只在生成长期加密密钥等极高安全需求时使用 /dev/random
|
||
|
- 不要频繁打开和关闭设备文件,可以保持打开状态或重用文件描述符
|
||
|
- 检查所有系统调用的返回值,确保操作成功
|