26 lines
921 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
- 不要频繁打开和关闭设备文件,可以保持打开状态或重用文件描述符
- 检查所有系统调用的返回值,确保操作成功