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