-
sfv
(文件校驗)
鎖定
- 中文名
- 文件校驗
- 外文名
- SFV
- 屬 性
- 電腦裏的文件格式
- 英文全稱
- simple file verification
- 採用算法
- crc32的校驗算法
sfv格式説明
Sfv是simple file verification(簡單文件校驗)的簡寫,可以以文書編輯或記事本打開本文編寫。但通常網上有軟件Quicksfv、Flashsfv等可創建。它雖説是文字文件,但不成文,沒有規範。有時創建的sfv被其它程序來檢驗檔案使用,會有錯誤出現:“本文判斷錯誤,並影響crc校驗。”只需改正回來,但原理是一樣。
sfv校驗算法
它採用的是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)值了。至於除法的具體算法,有硬件實現也有很多軟件實現,這裏就不再贅述。