/dev/urandom 有替代品吗?

/dev/urandom 有替代品吗?

有没有比 /dev/[u]random 更快的方法?有时我需要做类似的事情

猫/ dev / urandom> / dev / sdb

随机设备“太”安全了,不幸的是速度太慢了。我知道有wipe类似的安全删除工具,但我想 Linux 中也有一些内置方法可以实现这一点。

答案1

如果您想要“安全”地擦除硬盘(或文件),您应该查看碎纸实用程序。

正如先前的海报所指出的那样,/dev/*random 设备旨在用作小块随机数据的来源。

答案2

不幸的是,Linux 对 urandom 的实现很糟糕。如果您的 CPU 支持 AES-NI(硬件加速),您可以使用 aes256-ctr 和随机密钥,每秒获得数百兆字节的伪随机性。我期待 urandom 也能切换到现代方法。

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > randomfile.bin

这个小狗在我的机器上的速度是 1.0 GB/s(相比之下 /dev/urandom 的速度是 14 MB/s)。它只使用 urandom 来创建随机密码,然后使用该密钥对 /dev/zero 进行非常快速的加密。这应该是一个加密安全的 PRNG,但我不能保证。

答案3

在搭载 T2500 CPU 的 Thinkpad T60p 上,在 Ubuntu 8.04 下进行快速测试,1GB 随机数据的速度openssl rand比 快 3-4 倍/dev/urandom。也就是说,

time cat /dev/urandom | head -c 1000000000 > /dev/null

...大约持续了 4 分钟...

time openssl rand 1000000000 | head -c 1000000000 > /dev/null

...刚过 1 分钟。

不确定随机质量是否存在差异,但对于高清擦除来说,两者可能都很好。

答案4

如果你需要安全地擦除硬盘,有一个工具非常强大的: 数据库管理系统

相关内容