最快的Sha1功能(Linux,最多2GB文件)

时间:2009-03-13 03:25:40

标签: file hash cryptography sha1 performance

是否有任何linux命令行实现在大文件(< 2GB)上生成sha1的效果非常好?

我玩'openssl sha1'并且需要几分钟才能获得2GB文件的sha1:/。

5 个答案:

答案 0 :(得分:7)

在我的机器上,对于1GB的文件,有足够的内存使第一次运行后整个文件缓存在内存中:

sha1sum: 3.92s
openssl sha1: 3.48s
python hashlib.sha1: 3.22s
  

获取2GB文件的sha1需要几分钟

那时候出现了问题,除非你使用的是非常慢的旧硬件。即使在第一次运行时,文件是直接从光盘读取的,在我的机器上每次演出只需要20s左右的'openssl sha1'。您是否通常会遇到缓慢的I / O问题?

答案 1 :(得分:3)

您的问题可能是磁盘I / O.旧的2.0GHz Core Duo处理器上的基本SHA1实现可以100MiB / s处理/ dev / zero - 比通常与这种系统配对的大多数硬盘驱动器更快。

向我们展示您目前看到的速度(以及规格硬件)。

答案 2 :(得分:3)

我认为SHA算法不能针对大小进行优化,因为它在固定大小的块上运行,并且计算不能并行完成。似乎小文件上最快的实现也是大文件中最快的实现。

答案 3 :(得分:3)

如果你不是特别需要sha1但是正在寻找校验和大文件,那么对于大文件来说Sha512sum会更快,因为它读取的是更大的块

答案 4 :(得分:1)

sha1sum是我用来计算SHA-1校验和的...它的目的只是做一件事,所以我希望它尽可能快地完成它。我没有任何2GB文件可以对它进行基准测试: - (

编辑:在对ISO映像进行一些测试之后,看起来我系统上的限制因素是磁盘I / O速度 - 这并不奇怪,虽然我觉得有点傻到没想到。一旦得到纠正,似乎openssl的速度大约是sha1sum的两倍......