random -/proc/sys/kernel/random/uuid 是强 key Material 吗?

标签 random uuid

我一直在寻找为 HMAC_SHA256 算法生成强大的 256 位/32 字节对称 key 的方法。我偶然发现了/proc/sys/kernel/random/uuid 文件。

根据 man random(4) :“只读文件 uuid 和 boot_id 包含随机字符串,如 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9。前者每次读取都会重新生成,后者生成一次。”

来自 cat /proc/sys/kernel/random/uuid 的字符串看起来很适合这个目的。我可以删除“-”字符并最终得到 32 字节的随机性。

这是生成 key Material 的加密强源的有效方法吗?

最佳答案

一个老问题,但万一有人偶然发现,我不建议这样做。
/proc/sys/kernel/random/uuid是具有特定语义的类型 4(随机)UUID - 它不仅仅是一串随机的十六进制字符。例如,您会看到第三组中的第一个数字始终是 4。

对于 256 个随机位,只需从 /dev/random 读取 32 个字节(使用外部熵,可以阻塞)或 /dev/urandom (从不阻塞)。

关于random -/proc/sys/kernel/random/uuid 是强 key Material 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873099/

相关文章:

.net - RNGCryptoServiceProvider和硬件RNG一样好吗?

android - 如何以编程方式创建 A2DP 连接或如何将 Android 手机模拟为 A2DP 接收器?

jdbc - 我应该如何将 UUID 与 JavaDB/Derby 和 JDBC 一起使用?

python - 由于缺少 UUID 模块,如何在 Python 2.4 中生成 UUID/GUID

c++ - 生成[0,1)之间的随机数c++

python - "Deterministic"伪随机数生成

java - 如何使用随机类生成 3 个单词

java - math.random() 遵循哪些算法

ios - 获取应用程序在运行时存档时 dSYM 具有的 UUID

google-drive-api - Google Drive File ID 在全局范围内是唯一的吗?