校验和与验证系列科普(二)
- By : Titivillus -
- Category : 影视制作
- Tags: 影视制作
关于第二部分的内容,之前我们问了你们最感兴趣的是什么,许多人回答说,他们想知道每种校验和的定义和解释,以便在不同的情况下更好地使用它们。当然你们都有在用ShotPut Pro装载数据,对吧?又或许你正在研究哪种备份软件比较适合你。本系列文章也会比较一下各种备份软件和它们对校验和的使用。
我们不会白费力气做重复工作,但在该写明内容来源的地方都会写明来源!所有用来解释和定义校验和的资料都可在文内找到。如果你在找比较轻松的东西读……那这些内容不适合你!但如果你想获取更深入的信息,这些内容信息量够大。
xxHash:xxHash是一种非常快的非加密哈希(hash)算法,其运行速度接近RAM上限。它有两种形式,32位和64位。(github. io上的SMHasher)
ShotPut Pro、ShotSum 和 PreRoll Post 使用 xxHash 64位。我们比较推荐使用 xxHash 作为校验和类型,除非你明确需要使用其他类型。xxHash 的运行表现会优于 MD5,因为它可以以 RAM 的速度运行,而 MD5 的表现则取决于 CPU 处理能力。
值得注意的是,一些英国公司不接受 xxHash,所以如果有偏好或要求,一定要和客户或保险公司确认。
MD5:MD5算法是一种广泛使用的哈希函数,生成的是128位的哈希h值。它是验证数据完整性的最佳校验和类型。(维基百科MD5)
多年来,MD5是可用的最快和最安全的校验和。尽管xxHash的应用越来越广泛,但仍有许多公司要求使用MD5校验和。
在选择校验和时,首要考虑的是它的速度有多快,而在文件方面,校验和冲突的几率是多少?冲突概率指的是两个不同文件映射到相同校验和值的概率。xxHash很优秀,因为它很快,但仍然存在低冲突概率。很多人甚至认为哈希函数比逐字节比较更安全,因为在很多情况下,硬件返回错误结果的几率会高于校验和冲突几率。
SHA-1:(Secure Hash Algorithm 1-安全哈希算法1)这是一种加密哈希函数(cryptographic hash)。SHA-1会生成160位(20字节)的哈希值,也被称为信息摘要(message digest)。SHA-1哈希值通常呈现为十六进制数字,长度为40位。(维基百科SHA-1)
SHA-2:(Secure Hash Algorithm 2-安全哈希算法2)256和512——这是SHA-1的升级版本,包括6种哈希函数,Imagine Products软件提供6种哈希函数中的2种。加密哈希函数是在数字数据上运行的数学操作;通过将计算得到的“哈希”(算法执行的输出)与已知和期望得到的哈希值做比较,使用者可以确定数据的完整性。(维基百科SHA-2)
不同保险公司或政府机构有时仍要求使用 MD5 和部分 SHA 校验和算法,因为它们存在已久且比较成熟,但它们被设计成了加密哈希。加密哈希最初是用来存储密码之类的东西的。它们本就该很复杂,甚至本就该慢,以确保密码的安全性。但这对我们多数人来说并不理想,所以 xxHash 才会应运而生。
除非你有特定需求,否则我们比较推荐使用xxHash或偶尔使用MD5,因为其他方法通常不值得拿冲突几率换速度。以SSD至SSD拷贝的情形举例,xxHash 之外的任何算法表现可能都会欠佳。
出处:Studio Daily
翻译:Charlie | 盖雅翻译小组
系列阅读:校验和与验证系列科普