In the file-based workflows of digital cinematography today the secure and reliable transfer of media files is one of the essential activities to be performed in a production. The Media Hash List specification ensures that the complete source media is transferred without any alterations.
To make sure that the copy is an exact replica of the original, the best solution are checksums, which are originating for example in cryptography. Media Hash List utilizes the widely used SHA-1, MD5, and xxhash hashing algorithms. While being similar to cross sums, these algorithms are mathematically much more advanced and guarantee that no two distinct files possess the same checksum.
Therefore, you can detect any change in a file by comparing it to its checksum. If the file wasn’t altered, the checksums match. If the file was altered, it is by definition another file and therefore, the checksums don’t match.
Inventory list for folders
The Media Hash List (MHL) standard specifies how a common inventory list of a folder’s content looks like.
MHL is an XML format, that basically lists all the files in a folder and all of its subfolders as well as the corresponding checksums. This list is accompanied by additional information about the creation of the MHL file.
Technically speaking, the MHL file comprehends all the information necessary to tell if the folder structure or any of the contained files was modified since the MHL file was created.
Detection of changes
Within a production process, files get copied and moved multiple times. During each file operation a multitude of unintended changes can occur, mostly due to human error, but because of technical failures:
- Empty files
- Changed files
- Change of folder structure
- Incomplete copy of a folder structure
- Removal or missing of files
- Addition of files
To detect these errors, MHL stores a map of the original folder structure in each MHL file. Therefore, every change to the folder structure can be detected by comparing it to the original map.
Ready for archive
The Media Hash List is an XML format, that has also been created to be human-readable to a certain extent. Thus the format is self-describing enough, so that you can easily build support for MHL in you own software and system environment. At the same time, this also ensures archivability, since you can be sure this format will still be readable by future generations.
Tool support and workflow integration
MHL was designed with your existing file workflows in mind. It offers various possibilities to attach your existing scripts and tools. It integrates especially well with your existing checksum based file workflow.
The MHL tool accepts a broad range of in- and outputs, ranging from MHL Files, MD5 or SHA1 files to checksums in openssl syntax via stdin/stdout.
Therefore, it allows you to create MHL files from existing checksum files, pass on checksums from other tools to MHL and extract checksums from MHL files for use in other tools.