What a Chat PDF Integrity Hash Does, and Does Not, Prove

A SHA-256 hash is a fingerprint calculated from bytes. Compare it with a trusted earlier value to check whether those bytes changed. It cannot tell you who wrote a message, whether the export is complete or whether the source was edited before hashing. convokeep offers formatting prepared for submission, with an integrity hash. Admissibility is decided by the court, and this page is not legal advice.

What you get

Record's integrity page contains the source SHA-256, transcript SHA-256, counts and generation time in UTC. The source hash identifies the supplied file. The transcript hash identifies the transcript data used for the record. Counts describe the generated record, rather than certifying how many messages ever existed. The UTC time records generation; it is not an independently verified timestamp or proof of when the conversation happened.

The final PDF's SHA-256 is separate, shown with the result and provided in an accompanying .sha256.txt file. The PDF cannot contain its own final hash: inserting that value would change the bytes being hashed. Do not compare a finished PDF against the transcript hash printed inside it; those refer to different data.

How to check a hash yourself

  1. Keep the original export, generated PDF and accompanying hash file together. Preserve the reference values independently if you need to detect later replacement of both a document and its hash file.
  2. Windows: run certutil -hashfile "chat.pdf" SHA256 on the downloaded PDF. Mac: run shasum -a 256 "chat.pdf". Linux: use sha256sum "chat.pdf", or shasum if installed.
  3. Compare the result with the PDF value in the separate hash file, not with the transcript value. Check every character. A matching SHA-256 is strong practical evidence that the bytes match the referenced file.
  4. Run the same command against the untouched source export and compare with the source SHA-256 on the integrity page. Hash the same input file, not an extracted member of a zip when the original input was the zip itself.

A worked example

Suppose a synthetic conversation contains Alex's message, "Meet at noon." You generate a Record PDF and save its separate reference hash. Later you check an unchanged copy: the value matches. If someone edits the PDF text or resaves the document, its bytes change and its hash will differ. If someone fabricated the source before generation, matching hashes cannot expose that fabrication.

Prepare the source first

Export through the messenger's own workflow or an appropriate desktop exporter. See the guides for WhatsApp, LINE, Telegram, Instagram or iMessage. Saved the file on your phone? Move it to your computer over USB, email or a trusted cloud drive, retaining the untouched source. For a specific layout example, see WhatsApp chat for submission.

Privacy

convokeep builds the preview and PDF entirely in your browser. No chat or attachment is uploaded. No convokeep account is needed. Cookieless events exclude message text, participant names and file names. Read the privacy policy.

Email, cloud drives and separate exporters have their own data handling. For a local file transfer, use a cable. convokeep's browser-only promise covers conversion.

Keepsake vs Record

Keepsake uses a book-style layout for memories and printing. Record adds page numbers and an integrity page alongside sender and time information. That page contains the source SHA-256, transcript SHA-256, counts and generation time in UTC. The finished PDF's hash is supplied separately.

A matching hash lets you check unchanged bytes against a trusted earlier value. It does not prove the source conversation is authentic or complete. Read the disclaimer and the integrity-hash explanation.

FAQ

Does a hash decide whether a court accepts a PDF?
No. A hash is a file comparison tool. Admissibility is decided by the court, and this page is not legal advice.
Could someone edit a chat before hashing it?
Yes. A hash cannot reveal changes made before the reference value was computed, establish authorship or prove that an export is complete.
Why hash the source as well as the transcript?
The source hash identifies the input bytes; the transcript hash identifies the transcript data used for the record. Neither authenticates the conversation itself.
Should I speak with a lawyer?
For an actual dispute, ask a qualified lawyer about preserving originals, recording how files were obtained and the required submission format.

Related guides

Ready to try it?

Drop your exported chat to see a free preview on the convokeep app. The first 3 pages appear with a watermark and no integrity page; saving the full PDF is a one-time paid purchase.

This document was generated locally in the user's browser; no content was uploaded.

Prepared for submission, with an integrity hash. Not legal advice. Whether it is accepted is decided by the court or agency.

Open the app

This document was generated locally in the user's browser; no content was uploaded.