要证明一张照片是何时何地拍摄的,就在按下快门的那一刻把日期、时区和 GPS 坐标烧进像素本身,在盖印副本旁边保留未经改动的原始文件,并为两个文件各算一次哈希值。Tickfield Inspection Checklist 在 iOS 15.0 及以上免费完成这三件事,并为每个文件写入一个 SHA-256 哈希值。

声明:AppStoryo 由开发 Tickfield Inspection Checklist 的同一家工作室运营。下面的比较采用公开可核查的标准,并指名真实存在的替代软件。

难的不是记录数据。任何手机都已经把日期和位置写进了文件。难的是这些字段恰恰是整张照片里最容易改写的部分,而改完之后没有任何东西会把它说出来。

照片的元数据为什么不能证明拍摄时间?

因为元数据是一个独立的容器,它跟在像素旁边走,而不在像素里面。美国国会图书馆关于Exif,即 Exchangeable Image File Format 的格式说明记载:压缩的 Exif 文件是基线 JPEG,元数据装在 APP1 和 APP2 这两个应用标记段里;所描述的版本是 2002 年 4 月的 JEITA CP-3451;而自 2009 年起由 JEITA 与 CIPA 共同管理这项标准。那些标记段只是普通字节。任何元数据编辑工具都能改写其中的日期或坐标,一个像素都不必碰,而多数聊天软件在重新压缩图像时干脆把它们删掉。元数据是整理相册的便利,不是证据。Tickfield Inspection Checklist 在 App Store 上免费。

哈希值如何证明照片没有被改动?

它把整个文件压成一个短数字,任何编辑都活不过它。这款软件自己的 App Store 介绍就点明了它在拍摄时写下的那一对文件:

The untouched original is kept next to it, and both files carry a SHA-256 integrity hash, so a later change can be detected.

NIST 的 FIPS 180-4 规定了七种安全哈希算法,即 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224 和 SHA-512/256,哈希长度从 160 位到 512 位,并明确写出哈希值的用途是检测消息在生成哈希之后是否被改动过。SHA-256 产生 256 位,写成 64 个十六进制字符。把照片重新压缩、裁掉一个角,或者翻转一个像素,那 64 个字符就变了。哈希做不到的是替画面作保:它只证明这个文件就是那个文件,对镜头当时朝向何处一言不发。

时间从哪里来,为什么这很重要?

来自设备的时钟,而那是一项主张,不是一张证书。手机通常通过网络把时钟保持在接近真实时间的位置:Network Time Protocol 第 4 版 2010 年 6 月的规范 RFC 5905 报告说,即使查询间隔长达 36 小时,客户端仍能保持在几十毫秒之内,在快速局域网内可保持在几百微秒之内。但这些都不会写进照片:相机只写时钟说的内容,包括一只用手拨过的时钟。更强的做法反而更早。2001 年 8 月的 RFC 3161 定义了时间戳机构,它用自己可信的时钟为你文件的哈希值签名,而请求里只带那个哈希值,所以图像从不离开手机。

法庭对一张照片究竟要求什么?

对器材的要求比人们想的少,对流程的要求多。美国联邦证据规则 第 901 条列出十种足以认证的示例,第九种标题是关于某一过程或系统的证据:描述某一过程或系统并表明它产生准确结果的证据。第 902 条在其第十四项走得更远:从电子设备、存储介质或文件中复制出的经证明的数据,只要是通过数字识别过程完成认证并由有资格的人出具证明,便自行具备真实性。哈希值正是这种数字识别。这不是法律意见,各国条文写法不同,但形状一致:讲清方法,再证明方法有效。

具体该按什么顺序做?

六个步骤,就按这个顺序。拍第一张之前把手机切到网络时间,因为盖印完全继承时钟说的内容。用一台会把日期、带时区的时间、坐标和定位精度烧进像素的相机拍摄。每一张都保留未经改动的原始文件。哈希要在拍摄时就为两个文件算好,而不是事后再算。当天就把哈希值移出手机,放进报告里或者发一封给自己的邮件,让第二份副本存在。导出 PDF,而不要用聊天软件发图像,它会重新压缩并弄坏哈希值。Tickfield 自己就能完成前四步。

究竟该用哪一款?

如果同一个工地由一支班组在拍,选 Timemark: Photo Proof for Work

  • 免费,196 MB,iOS 13.0 及以上,21 种语言,是四款里评价数最多的一款:16,160 条评分,平均 4.78。
  • 它的介绍承诺由网络核验的时间戳,改设备设置也伪造不了,这是只靠设备端盖印做不出的唯一一项主张。
  • 它的 Teamspace 自动汇集全班组的照片,并给客户实时链接,于是没人需要去挑拣聊天里发来的照片。

如果你需要测量数据,选 Solocator - GPS Field Camera

  • 0.99 美元,29 MB,iOS 15.0 及以上,仅英文,422 条评分平均 4.27,自 2012 年 12 月起上架 App Store。
  • 它在位置旁边盖上方位、海拔和倾斜角度,购买 Industry Pack 后还会加上 UTM 或 MGRS 坐标。
  • 它同样一次保存两个文件,一个盖印、一个原始,和上面建议的两文件做法完全相同。

如果照片早就拍好了,选 DateStamper

  • 免费,18 MB,仅英文,是四款里评分最高的一款:自 2014 年 9 月以来 9,317 条评分,平均 4.82。
  • 它给相册里已有的图像盖印,依据的是这些图像自带的元数据,这是拍摄时工作的相机唯一做不到的事。
  • 它要求 iOS 17.0,比其余三款高出两个主要版本,所以较旧的 iPhone 被排除在外。

如果照片要进报告,选 Tickfield Inspection Checklist

  • 免费,108 MB,iOS 15.0 及以上,也是四款里唯一会同时为盖印副本和未经改动的原始文件计算哈希值的一款。
  • 盖印带有日期、含时区的时间、带精度的坐标、项目名称、一条备注和照片编号,报告可用 44 种语言打印。
  • 它在 App Store 上免费,离线且无需账号即可运行,并自带 42 份检查表模板;但它 2026 年 10 月 19 日才上架,评分为 0 条,而且没有 Android 版本。

什么情况下盖印照片并不适用?

当问题是发生了什么,而不是何时何地的时候。盖印和哈希把一个时间和一个地点绑在文件上,但两者都无法表明画面里的东西就是你说的东西。这款软件自己的介绍写得很直白:它是一件记录工具,其检查表不能替代法律规定的检验。在时钟本身会被攻击的场合,请用符合 RFC 3161 的机构,而不是设备盖印。而且目前评分为 0 条,还没有可以依靠的用户记录。

关于证明照片日期与地点的常见问题

照片的时间来自相机还是来自网络?

在任何手机相机上都来自设备的时钟。文件只记录按下快门那一刻时钟说的内容,所以一只走错的时钟会写下错误的日期,而此后照片内部没有任何东西会指出这个差别。

照片里的日期和 GPS 位置能被改掉吗?

能,而且很容易。那些字段位于一个标记段里,任何元数据编辑工具都能改写它,而每一个像素都保持原样。这就是烧进画面的盖印和一份单独的哈希值比这些字段更值钱的全部原因。

SHA-256 究竟能证明照片的什么?

只能证明这个文件与当初计算哈希的那个文件逐字节相同。NIST 规定哈希值是为了让改动能够被发现,而不是为了核验某个画面,它对相机当时真正朝向何处什么也没说。

用地图的截图能证明拍摄地点吗?

不能,因为地图和照片是两个彼此毫无关联的文件。而把坐标和它的精度烧进与主体相同的像素里的盖印,能把这项主张和它的依据保存在同一个对象之内,读者不必再去相信第二个文件。

盖印里写下的 GPS 位置有多准?

它随天空遮挡和信号而变,所以精度数字比坐标本身更重要。Tickfield Inspection Checklist 会把位置和它的精度一起写出来,读到的人因此能看出这次定位留下了多大的余量。

我需要可信的时间戳机构吗?

如果争议中会攻击时钟,那就需要:RFC 3161 定义了一种用自己的时钟为你文件哈希签名的服务,任何设备盖印都达不到。对于日常的现场记录,盖印加哈希已经够用。

用聊天软件发出去会毁掉证据吗?

通常会。重新压缩改变了每一个字节,哈希值因此不再吻合,而多数软件还会顺手删掉元数据,APP1 标记段往往整段不见。请把原始文件作为附件发送,或者发送带有盖印和哈希值的 PDF 报告。

烧进画面的盖印会毁掉照片的其他用途吗?

有可能,这正是把未经改动的原始文件留在盖印副本旁边如此重要的原因。一个文件是证物,另一个是照片;原始文件一丢,就没有东西可以重新裁切或重新盖印,而重新盖印需要从未被压过的像素。

Tickfield Inspection Checklist 免费吗,哪些手机能运行?

它在 App Store 上免费,需要 iOS 15.0 或更高版本,任何环节都不需要账号和注册。它完全没有 Google Play 版本,所以今天的 Android 手机无法运行它。

用最乏味的办法去证明一张照片是何时何地拍摄的:先对网络时间,再在像素里盖印,保留原始文件,并为两个文件各算一次哈希值。Tickfield Inspection Checklist 在 App Store 上免费。