不同图像的校验和相同

时间:2018-10-16 02:42:07

标签: hashtable md5 checksum sha java-security

我正在通过FTP将数千个图像从一个系统发送到另一个系统。最初,我将转储所有图像,但是稍后,我只想发送那些已更改的图像。

我还没有找到任何具体的解决方案来根据Windows中更新的时间戳找出更改的图像。因此,我决定采用以下方法:

1。)为所有文件生成校验和并将它们存储在某个位置。也许是数据库或文件系统。

2。)每次我将文件发送到另一个系统时,都要比较校验和并仅发送具有不同校验和的文件。

为了测试以上内容,我尝试为两个不同的图像生成一个校验和(SHA和MD5),并且校验和是相同的。

以下是示例代码:

package com.test;

import java.io.FileInputStream;
import java.io.IOException;

import org.apache.commons.codec.digest.DigestUtils;

public class TestHash {
     public static void main(String[] args) throws IOException {

            String checksumSHA256 = DigestUtils.sha256Hex(new FileInputStream("monkey_11.jpg"));
            System.out.println("checksumSHA256 : " + checksumSHA256);

            String checksumMD5 = DigestUtils.md5Hex(new FileInputStream("monkey_11.jpg"));
            System.out.println("checksumMD5 : " + checksumMD5);


            String checksumSHA256_1 = DigestUtils.sha256Hex(new FileInputStream("monkey.jpg"));
            System.out.println("checksumSHA256 : " + checksumSHA256_1);

            String checksumMD5_1 = DigestUtils.md5Hex(new FileInputStream("monkey.jpg"));
            System.out.println("checksumMD5 : " + checksumMD5_1);

        }
}

我想知道为什么校验和相同?还有另一种方法来识别更新的图像吗?

0 个答案:

没有答案