有没有比 /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
如果你需要安全地擦除硬盘,有一个工具非常强大的: 数据库管理系统