How to hash video footage and prove it has not been altered
SHA-256 in plain terms, and what a matching hash does and does not show.
Hash stamping a video means computing a short fingerprint of the file that changes completely if even one byte changes. If you recorded the fingerprint when the video was made, anyone can later check that the file they hold is the same. This page explains how it works, how to do it by hand, and what Witness does automatically. Written by the developer of Witness Camera, so read it with that in mind; where another approach is better, it says so.
Short answer. A SHA-256 hash is a 64-character fingerprint of a file. Change one byte and it changes completely, so a matching hash shows the file is identical to the one that was hashed. Compute one with shasum -a 256 on macOS and Linux or certutil -hashfile on Windows. The hash only means something if it was recorded when the video was made and kept somewhere you cannot alter. Witness computes a SHA-256 for every 15-second piece on the phone before it uploads, lists them in a manifest, and has an independent authority time-stamp that manifest. A match proves the file is unchanged, not that its content is true.
What a hash is
A cryptographic hash function turns any file into a fixed-length string. SHA-256 gives 64 hexadecimal characters. The same file always gives the same string, and a different file, even one differing by a single byte, gives a completely different one. You cannot work backwards from the hash to the file.
How to hash a video yourself
shasum -a 256 recording.mp4 # macOS and Linux
certutil -hashfile recording.mp4 SHA256 # Windows
Compare the output with the value you recorded earlier. They must be identical. Any difference, however small, means the file is not the same.
Why timing matters
A hash computed today only shows the file has not changed since today. It proves nothing about the moment of recording. For a hash to count, it has to be computed as close to the moment of capture as possible and stored somewhere the person holding the footage cannot quietly alter. That is why Witness hashes on the phone, immediately.
What Witness does
- Records video in pieces of about 15 seconds. Each piece is finalised as a complete, playable file.
- Computes the SHA-256 of each piece on the device, before it is uploaded, so the hash describes the footage as it came off the camera.
- Lists every piece and its hash in a manifest that is rewritten and re-uploaded as the recording goes on, so the record exists in your storage even if the phone is taken mid-recording.
- At the end of a session, hashes the manifest and has it independently time-stamped.
What a matching hash does not show
- That the footage depicts what someone says it does.
- That it was recorded when it appears to have been, unless a trusted time-stamp covers the hash.
- Anything about a re-encoded copy: messaging apps and social platforms re-compress video, so the copy's hash will not match the original even though nothing was tampered with.
For the full verification steps, see how to verify footage.
Questions
What does hashing a video prove?
That the file you hold is identical to the one that was hashed. It does not prove what the video shows, and it only helps if the original hash was recorded at the time and kept where it could not be altered.
How do I get the SHA-256 of a video?
Run shasum -a 256 <file> on macOS or Linux, or certutil -hashfile <file> SHA256 on Windows, and compare the result with the recorded value.
Why does the hash of a video sent over WhatsApp not match?
Messaging apps re-encode video, which changes the bytes. The mismatch comes from the channel, not tampering. Ask for the original file through a link to the storage account.
Does Witness hash every recording?
Yes. Every piece is hashed on the phone before upload, whether or not you use Pro, and the hashes are listed in a manifest.
Try it free
The free app includes this. Set it up and test it before you need it.
More Witness features explained
- Witness features explained
- Stealth mode camera apps for iPhone and Android: what they can and cannot hide
- Trusted timestamp for video: how RFC 3161 time-stamping works
- Chain of custody for video: what a manifest records and how to check it
- Record video straight to cloud storage while you are still recording
- Send video and your location to a trusted contact while you record
- Burn a timestamp and GPS location into video on iPhone and Android
- Start recording video without unlocking your phone
- Record video straight to Nextcloud or your own WebDAV server
- Trim silence out of video automatically: the highlight cut
- Record with the front and rear camera at once on iPhone and Android
- Record video on a weak connection: how Witness sends a preview first
- Does Witness encrypt video? What protects footage and what does not
- Generate a PDF evidence report from a video recording
- How to blur faces and anonymise voices in protest video, and why it is hard
- Witness for Professionals: how Witness Pro works
Written on 27 October 2026. Features and prices change. This is not legal advice.