来自 urandom 的种子性能和可靠性
Seed performance and reliability from urandom
#!/bin/bash
seed1=0
seed2=0
while [[ "$seed1" == 0 || "$seed2" == 0 ]]; do
seed1=$(head -c 4096 /dev/urandom | tr -dc '0-9' | fold -w 16 | head -n 1)
seed2=$(head -c 4096 /dev/urandom | tr -dc '0-9' | fold -w 16 | head -n 1)
done
seed_array=($seed1 $seed2)
seed_array=($(echo ${seed_array[*]}| tr " " "\n" | sort -n))
salt_num=[some function id rather not reveal] < /dev/urandom
echo $(echo [seed and salt go here in some order id rather not say] | sha256sum | awk '{print }')
我正在为我试图放在一起的东西或其他东西创建种子和盐,这是一个肮脏的版本。现在,我喜欢它开始工作的方式,因为我在这里得到了很多非常好的随机性。但我需要在这里争取最高的熵。我认为 urandom 是完成这项工作的工具,但我不知道在从中提取 4k 项后我对 tr -dc '0-9'
的感觉如何。它成功了,所以我必须弃牌 16 次而不是 32 次,这是我更喜欢的。因为有时候,没有足够的数字可供选择。
明确地说,我想实现以下约束:
- head -c 4096 作为任意一个命令期间 urandom 的最大拉力
- seed1,seed2 应该是一系列 32 整数 0-9 尽可能随机
- 如果可能,希望可靠地将折叠增加到 32(永远不会有低于 32 个字符的种子)
- 从 urandom 中拉少一点就可以了。如果熵被保留。
- 当且仅当熵增加时其他建议是可行的
就像我之前说的,tr -dc '0-9'
感觉很草率。如果可能的话,有没有办法增加我从 urandom 使用的字节数(目前基本上只是过滤任何不是 int 的东西)。
它有效,但我觉得必须有更好的方法。有新眼光的人看到我遗漏了什么吗?
如何在 head
和 tr
之间添加 | od -An -tx8
以将输出转换为十六进制,以便更可能出现 0-9。
#!/bin/bash
seed1=0
seed2=0
while [[ "$seed1" == 0 || "$seed2" == 0 ]]; do
seed1=$(head -c 4096 /dev/urandom | tr -dc '0-9' | fold -w 16 | head -n 1)
seed2=$(head -c 4096 /dev/urandom | tr -dc '0-9' | fold -w 16 | head -n 1)
done
seed_array=($seed1 $seed2)
seed_array=($(echo ${seed_array[*]}| tr " " "\n" | sort -n))
salt_num=[some function id rather not reveal] < /dev/urandom
echo $(echo [seed and salt go here in some order id rather not say] | sha256sum | awk '{print }')
我正在为我试图放在一起的东西或其他东西创建种子和盐,这是一个肮脏的版本。现在,我喜欢它开始工作的方式,因为我在这里得到了很多非常好的随机性。但我需要在这里争取最高的熵。我认为 urandom 是完成这项工作的工具,但我不知道在从中提取 4k 项后我对 tr -dc '0-9'
的感觉如何。它成功了,所以我必须弃牌 16 次而不是 32 次,这是我更喜欢的。因为有时候,没有足够的数字可供选择。
明确地说,我想实现以下约束:
- head -c 4096 作为任意一个命令期间 urandom 的最大拉力
- seed1,seed2 应该是一系列 32 整数 0-9 尽可能随机
- 如果可能,希望可靠地将折叠增加到 32(永远不会有低于 32 个字符的种子)
- 从 urandom 中拉少一点就可以了。如果熵被保留。
- 当且仅当熵增加时其他建议是可行的
就像我之前说的,tr -dc '0-9'
感觉很草率。如果可能的话,有没有办法增加我从 urandom 使用的字节数(目前基本上只是过滤任何不是 int 的东西)。
它有效,但我觉得必须有更好的方法。有新眼光的人看到我遗漏了什么吗?
如何在 head
和 tr
之间添加 | od -An -tx8
以将输出转换为十六进制,以便更可能出现 0-9。