我一直在寻找为 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/