2012-06-06 17 views
0

這不是一個真正的「如何」問題。檢查文件的crc32

應用程序是否使用「標準」文件結構來存儲文件夾中文件的校驗和?我正在開發一個工具來檢查crc32,md5,sha1,sha256等各種各樣的東西......我想讓我的程序在我正在檢查的文件夾中的文件中存儲各種哈希值。

我知道有一個常用的文件叫'md5sums'或'sha1sums'。但是CRC呢?我沒有注意到任何附近。如果有,它的結構是什麼?

謝謝。

回答

0

以下是我正在尋找的。這是由程序生成QuickSFV:

; Generated by QuickSFV v2.36 on 2012-08-09 at 16:34:25 
; http://www.QuickSFV.org 
; 
; 1684525442 21:45.33 2012-08-05 Video.mkv 
Video.mkv 9AC44069 

我一直在尋找,這似乎與旨在實現相同目的的其他程序使用標準的格式。

0

MD5散列使用另一個文件來存儲文件的散列值。您可以使用類似的方法來存儲爲您的文件計算的不同CRC。

+0

當然,我可以使用類似的...但如果可能的話,我想嘗試與其他軟件兼容。 – agent154

1

我可能會考慮以比特種文件作爲開始。 我覺得它使用類似的風格

一個JSON如果你有一個洪流程序,你可以生成一個文件夾中的.torrent文件和內容,並檢查了

我覺得這部分使用的級聯SHA1哈希的文件,但你可以在它的位置連接多個哈希,然後進行長度編碼。

維基百科有下面的例子:http://en.wikipedia.org/wiki/Torrent_file

{ 
    'announce': 'http://tracker.site1.com/announce', 
    'info': 
    { 
     'name': 'directoryName', 
     'piece length': 262144, 
     'files': 
     [ 
      {'path': ['111.txt'], 'length': 111}, 
      {'path': ['222.txt'], 'length': 222} 
     ], 
     'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb...8a43d9d965a47f75488d3fb47d2c586337a20b9f' 
    } 
} 

我可能會修改它是這樣的:

{ 
    'datelastupdated': '[date hash program ran]', 
    'info': 
    { 
     'name': 'thedirectoryName', 
     'Totalfiles': 2, 
     'Totaldirs': 2, 
     'files': 
     [ 
      {'name': '111.txt', 'size': 111, 'md5':"df038ad...", 'sha1':'3323...}, 
      {'name': '222.txt', 'size': 222 ........ etc.} 
     ], 
     'dirs': 
     [ 
      {'name': 'directoryname'}, 
      {'name': 'othername'} 
     ] 

    } 
} 

然後,您可以使用包做json_encoding或解碼(從CLI PHP將爲此工作)或任何你想創建/更新它們..

這個結構將允許您在做一個json_d後方便地訪問它ECODE類似:

$decodedjson->info->files[x]->name 

我總是有點糊塗了瓦特/該語法,所以它可能是這樣的 $decodedjson->info['files'][x]->name,但希望你的想法,它會很容易在整個結構中循環,更新比較並保存。 乾杯!