主要思路是对 JPEG 图片进行签名并将签名信息写入 EOI 文件尾, 若签名后的图片内容有任何的改动(不包括修改文件名), 则无法通过验证, 以此来检测该图片相较于签名前的图片是否有改动过.
项目已上传至GitHub
$ pixelguard sign -i official.jpg -o output_official.jpg # 将签名信息写入图片尾部
JPEG file signature successful!
$ pixelguard verify output_official.jpg # 图片未被修改
This JPEG file has not been tampered with.
$ exiftool -Artist="happy-shine" output_official.jpg # 修改 EXIF 信息(或修改像素点之类的操作)
1 image files updated
$ pixelguard verify output_official.jpg # 再次验证, 检测到图片内容被修改
Warning: This JPEG file has been tampered with!