Подтверждение содержимого файла по хешу

У меня есть требование «проверить целостность» содержимого файлов. Файлы будут записаны на CD / DVD, который может быть скопирован много раз. Идея состоит в том, чтобы идентифицировать копии (после того, как они были удалены из Nero и т. д.), которые скопированы правильно.

Я новичок в этом, но быстрый поиск подсказывает, что Arrays.hashCode (byte [ ]) будет соответствовать потребностям.Мы можем включить файл на диск, который содержит результат этого вызова для каждого интересующего ресурса, а затем сравнить его с байтом [] из Файл прочитан с диска при проверке.

Правильно ли я понимаю метод, действительный ли это способ проверки содержимого файла?

Если нет, предложения по ключевым словам или стратегиям / методам / классам поиска были бы признательны.


Рабочий код основан на ответе Брендана. Он решает проблему, выявленную VoidStar (требуется хранить весь байт [] в m Эмори за хэш).

import java.io.File;
import java.io.FileInputStream;
import java.util.zip.CRC32;

class TestHash {

    public static void main(String[] args) throws Exception {
        File f = new File("TestHash.java");
        FileInputStream fis = new FileInputStream(f);
        CRC32 crcMaker = new CRC32();
        byte[] buffer = new byte[65536];
        int bytesRead;
        while((bytesRead = fis.read(buffer)) != -1) {
            crcMaker.update(buffer, 0, bytesRead);
        }
        long crc = crcMaker.getValue(); // This is your error checking code
        System.out.println("CRC code is " + crc);
    }
}

5
задан Andrew Thompson 10 October 2013 в 00:05
поделиться