校验和与验证系列科普(五)
- By : Titivillus -
- Category : 科普版块
- Tags: 校验和, 科普
“复制一个大文件比复制多个文件要快。ProRes与DNG或ARRI的区别可以归结为一系列‘握手’。想象一下:你做成了一笔交易,然后握手。这是ProRes。再想象你做成了几百笔小生意,每笔都握手。这是ARRIRAW。每次传输文件时,每一方都需要停下再开始操作。”这里还有一个因素是,有时你负担不起传输数百个文件——没关系!意识到你必须调整对传输速度的期望值很重要。
安全性:我们已经在前面的章节中讲过校验和是什么,如何确定使用哪种校验和以及怎么判断你的内容确实正在经过验证——如果没跟上进度,去读一下前四章的内容吧!
在考虑速度时,校验和类型是另一个要考虑的因素。直接复制粘贴是比较糟糕的做法(这我们都知道),因为没有任何机制可以保证拷贝100%和源文件一模一样。也就是说,没有任何机制会告诉你:“嘿伙计,我们复制好了源文件的所有数据。”而这是每一种校验和都会和你确认的事情。
那么,当你需要快速安全地装载某些数据,或者你愿意放弃一些安全性以获得更快的速度(这样做风险很高,但假设我们已经接到了这类请求,必须解决它的话),你该怎么办?
如果你需要速度也需要安全性,眼下适合你的正确校验和选择就是 xxHash。
“xxHash是一种非常快的非加密哈希算法,其运行速度接近RAM限制。它分为两种形式:32位和64位。(github. io上的SMHasher)
对于ShotPut Pro、ShotSum和PreRoll Post,我们用的是xxHash 64位。我们建议使用xxHash作为校验和类型,除非你明确需要采用其他类型。举例来说,xxHash可能优于MD5,因为它能够以RAM的速度运行,而MD5的速度则取决于CPU进程。”
如果你需要的是较低的安全性和较快的速度,可以选择文件比较验证而不是校验和验证——请记住,如果选择这个选项,就不会有任何机制告诉你“嘿伙计,我们复制好了源文件的所有数据”了(参见上文)。但这也是一种可能的选择,有其存在的合理性。在ShotPut Pro和myLTO中,我们称之为文件大小比较,我们甚至更进一步,提供了只计算源的校验和的选项,以供之后参考。再次重申,这不是最好的实操方式,但这种验证有其存在的合理性,并当速度是你的首要考虑因素时,你是得想想要不要采用这种验证方式。
自信地装载数据吧,还要记得留意《校验和与验证系列科普》的下一部分。
出处:Studio Daily
翻译:Charlie | 盖雅翻译小组
系列阅读:校验和与验证系列科普