1

这不是一个真正的“如何”问题。

是否有应用程序用于将文件校验和存储在文件夹中的“标准”文件结构?我正在开发一个工具来检查各种东西,如 crc32、md5、sha1、sha256 等......我想让我的程序将各种哈希值存储在我正在检查的文件夹中的文件中。

我知道有一个常用的文件叫做“md5sums”或“sha1sums”。但是CRC呢?我没有注意到周围的任何东西。如果有,它的结构是什么?

谢谢。

4

3 回答 3

1

我可能会考虑先看一下 bit torrent 文件。我认为它使用了类似 JSON 的风格

如果你有一个 torrent 程序,你可以为一个文件夹和内容生成一个 .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_decode 之后方便地访问它,例如:

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

我总是对这种语法感到有些困惑,所以它可能类似于 $decodedjson->info['files'][x]->name,但希望你明白,在结构中循环、更新比较并保存它会很容易。干杯!

于 2012-11-15T09:41:40.497 回答
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

我一直在寻找一种与其他旨在实现相同目的的程序一起使用的标准格式。

于 2012-12-08T03:43:54.297 回答
0

MD5 哈希使用另一个文件来存储文件的哈希值。您可以使用类似的方法来存储为您的文件计算的不同 CRC。

于 2012-06-06T04:36:49.287 回答