我一直在研究如何为HMAC_SHA256算法生成一个强大的256位/32字节对称密钥。我偶然发现了/proc/sys/内核/随机/uuid文件。
根据人随机(4):“只读文件uuid和boot_id包含随机字符串,如6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9。前者是为每次读取重新生成的,后者是生成一次的。”
来自cat /proc/sys/kernel/random/uuid
的字符串看起来非常适合这个目的。我可以删除“-”字符,并以32字节的随机性结束。
这是一种有效的方法来生成加密强的密钥材料源吗?
发布于 2016-11-19 00:59:05
o172.net是最好的答案,可以直接评论,但不能。
/proc/sys/kernel/random/uuid
是以urandom
为基础的,但最好是直接从核武器中获取。
下面是如何从shell中获取它,下面是32个ascii十六进制字节:
echo $(tr -dc a-f0-9 < /dev/urandom | dd bs=32 count=1 2> /dev/null)
您可以通过tr
参数更改char集,字节由
dd bs=
or not use tr
得到随机二进制数。
https://stackoverflow.com/questions/5873099
复制相似问题