博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于SFV的小知识(转)
阅读量:2449 次
发布时间:2019-05-10

本文共 987 字,大约阅读时间需要 3 分钟。

关于SFV的小知识(转)[@more@]

在下载Warez时经常可以看到一些.sfv的文件,到底这种文件是这么回事呢,这里有比较详细的说明:

sfv是simple file verification(简单文件校验)的简写,它采用的是crc32的校验算法。

crc32校验产生32bit(8位十六进制数)校验值,所以一般大家看见的文件“sfv值”是一个8位的16进制数。

由于crc32产生校验值时源数据块的每一个bit位都参与了计算,所以数据块中即使一位bit发生变化,也会得到不同的crc32值(但对于两个完全不相干的文件是有可能有相同校验值的,因为校验值的取值空间有限——2^32,而现实中文件数量一定是大大超过这个值了)。

关于crc32校验的具体算法,大致的过程是(没兴趣的可以忽略这一段):

采用多项式除法,将一个数据块(不论大小)中的每一位(bit)作为各项系数来生成一个很长的多项式(例如对一个16进制的数F0h,可以生成多项式1*X^7 + 1*X^6 + 1*X^5 + 1*X^4 + 0*X^3 + 0*X^2 + 0*X^1 + 0*X^0,化简一下,就变成X^7 + X^6 + X^5 + X^4),然后将生成的多项式除以如下被称为“发生器多项式”的特殊多项式(X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+1),取结果的余数部分,就是我们需要的crc32(也就是sfv)值了。至于除法的具体算法,有硬件实现也有很多软件实现,这里就不再赘述。

md5是一个消息摘要算法(也叫单向散列函数)的名称。它通过一定的算法(任何有关应用密码学的书里都有具体的算法表述)根据源数据的每一位bit最终产生一个128bit(32位十六进制数)的校验值。由于长度达到一定的要求,所以在密码学领域中有一定应用(用它来校验文件理论上讲由于有更大的取值空间而肯定比sfv更安全,但实际上似乎sfv就够用了)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-946241/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-946241/

你可能感兴趣的文章
种子接近,随机数也接近吗_接近代码,接近爸爸
查看>>
retrofit2.6.0_RxAndroid和Retrofit 2.0
查看>>
创建微信机器人和女朋友聊天_创建聊天机器人
查看>>
scrum master_从Scrum Master到工程副总裁:职称为何重要
查看>>
sdlc 瀑布式 生命周期_SDLC指南–软件开发生命周期的阶段和方法
查看>>
基本SQL命令-您应该知道的数据库查询和语句列表
查看>>
大omega记号_什么是大欧米茄符号?
查看>>
react 使用 mobx_如何使用React和MobX状态树构建基于状态的路由器
查看>>
移动认证_如何在移动设备上实施安全的生物特征认证
查看>>
敏捷开发创始人_开发人员和技术创始人如何将他们的想法转化为UI设计
查看>>
node aws 内存溢出_在AWS Elastic Beanstalk上运行生产Node应用程序的现实
查看>>
我如何在昌迪加尔大学中心组织Google Hash Code 2019
查看>>
子集和与一个整数相等算法_背包问题的一个变体:如何解决Java中的分区相等子集和问题...
查看>>
aws中部署防火墙_如何在AWS中设置自动部署
查看>>
typescript_如何掌握高级TypeScript模式
查看>>
golang底层深入_带有Golang的GraphQL:从基础到高级的深入研究
查看>>
2019 css 框架_宣布CSS 2019调查状态
查看>>
sublime 消除锯齿_如何在Sublime中消除麻烦
查看>>
angular上传图片_如何使用Angular轻松上传图片
查看>>
如何在JavaScript中直观地设计状态
查看>>