关于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/

关于SFV的小知识(转)相关推荐

  1. 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...

    目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...

  2. 【C#小知识】C#中一些易混淆概念总结(七)---------解析抽象类,抽象方法

    目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...

  3. GO小知识之实例演示 json 如何转化为 map 和 struct

    今天简单谈一些 JSON 数据处理的小知识.近期工作中,因为要把数据库数据实时更新到 elasticsearch,在实践过程中遇到了一些 JSON 数据处理的问题. 实时数据 实时数据获取是通过阿里开 ...

  4. 1 编码_TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)

    今天,跟大家分享一下28379D的CLB解码多摩川绝对值编码器的一些入手小知识. 首先,28379是属于TI的2837x系列,D是双核版本,S是单核版本,S和D都是带CLB模块的,都可以实现位置解码, ...

  5. sam格式的结构和意义_BAM/SAM文件格式的一些小知识

    BAM/SAM文件的一些小知识 前言 如果不是在陈老师这读博,然后开始折腾BAM/SAM文件,我估计这辈子都不会了解到这么多东西吧 SAM/BAM简介 Sequence Alignment Map ( ...

  6. 安卓开发小知识 - 3

    内容来源:Android Development Tidbits // No. 3 这是第三次分享安卓开发中的一些小知识点.我们很高兴有这么多人知道了这个有趣的系列,并且对你们通过评论和邮件表达的支持 ...

  7. 蓝牙Bluetooth技术小知识

    蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...

  8. jquery/css需要记录的小知识(持续补充)

    一.前言 2020年的第一篇了,奥利给! 这部分主要是汇总一些平时遇到的jquery和css小知识,作为笔记使用. 二.正文 1.jquery模拟select下拉框的选择事件,并传参数: self.s ...

  9. Python的一些小技巧小知识

    Chapter 12. HOW-TO 本章内容记录Python的一些小技巧小知识.来源是网上摘录或自己学习所得. 如何判断操作系统类型 import sys print sys.platform pr ...

最新文章

  1. xmanager 3 远程连接REDHAT 4 桌面
  2. monkey補丁後異步速度比同步還慢是怎麼回事
  3. SAP Spartacus B2B Org Unit树状结构的ghost数据
  4. Windows Live Writer 在win2003 的安装方法
  5. java 配置写成表达式_Java的正则表达式之小结
  6. python车牌识别系统开源代码_北京百万庄车牌识别的软件人气火爆
  7. Linux怎么删除tomcat日志,Linux下定时切割Tomcat日志并删除指定天数前的日志记录...
  8. EtherCAT主站SOEM函数详解---- ecx_statecheck
  9. 宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统
  10. java —— int和byte的相互转化工具方法
  11. axios.post发送小数据可以,但发送大数据出现Cross origin requests are only supported for protocol schemes: http, data,
  12. App平台频频露脸综艺节目 观众到底买账吗?
  13. 大厂如何开发和部署前端代码?淘宝8年案例解读
  14. 【翻译】WhatsApp 加密概述(技术白皮书)
  15. html table拓宽,excel拉长单元格_excel调整单元格大小的方法步骤详解
  16. 【Linux】IRQ
  17. mysql left join 三表查询_MySql的join(连接)查询 (三表 left join 写法)
  18. Android中文件与文件夹的创建(file)
  19. Android实现全景图
  20. element-ui 渐变色table

热门文章

  1. 蓝牙耳机哪个品牌好?国产蓝牙耳机排行榜揭晓
  2. 你好,法语!A2知识点总结(3)
  3. java(九)-方法引用, Stream流,File类 , 递归 ,字节流
  4. vivo手机各系列简介和拆解
  5. access自动编号怎么解除_Access字段中“自动编号”类型不能再改回来的解决方法...
  6. 微信公众号h5使用jsapi支付
  7. 服务器性能是什么,什么是服务器性能的显卡,怎么理解?
  8. 敢问路在何方?路在脚下。
  9. python指纹识别_厉害吧!Python都能做指纹识别播报了
  10. android客户端测试用例,云电话Android客户端测试用例结果.xls