File Manifest Verifier

File Manifest Verifier

Compare a sender’s expected manifest with explicitly selected files. Verify exact paths, sizes and SHA-256 content; report missing, changed, unexpected and unreadable entries.

Limits: 200 files per set · 256 MiB each · 1 GiB per set · 256 KiB UTF-8 manifest. Sequential 256 KiB reads keep hashing memory bounded. Files are read only after you choose Verify or Create reference. JSON-encoded paths are limited to 200 KiB combined.

1. Expected bundle

Exact keys: format="teck-tani-file-manifest", version=1, algorithm="SHA-256", pathRule="relative-posix-exact", files: (path, size, sha256). Size is bytes; SHA-256 is 64 hex digits. Only nonnegative decimal integer literals are accepted. Duplicate or unknown keys are rejected. This is not a universal checksum format.

2. Actual files

Selection replaces the earlier set. Folder roots are removed only when this option is enabled. Paths preserve exact case and Unicode. No absolute paths, backslashes, dot/empty segments, edge spaces or file/descendant conflicts. Empty directories and filesystem metadata are not included.

Selected: 0 files · 0 bytes

Reference creation hashes the selected set without comparison. A new reference does not replace the expected document, prove authenticity or resolve missing files. No successful reference is returned if any file cannot be read.

Choose inputs, then verify. Editing inputs removes earlier results.

File bytes and metadata stay in this page’s memory. This tool makes no network request with them. Unsaved inputs are discarded when you leave.

Comments & questions

File Manifest Verifier

Check a received bundle against the file list and SHA-256 digests supplied by its sender. This tool validates the expected document first, then hashes selected files incrementally and reports matched, changed, missing, unexpected or indeterminate paths. A reference manifest can also be generated, but generation alone does not verify a received bundle.

Key features

  • Strict v1 JSON schema with duplicate-key and duplicate-path rejection
  • Exact relative paths, file sizes and SHA-256 content comparisons
  • Separate missing, unexpected and unreadable-file outcomes
  • Sequential 256 KiB reads with cancellation and no partial success
  • Complete CSV/JSON reports and an optional new reference manifest
  • Explicit folder-root handling and a real byte-change example

How to use

  1. Paste or select an expected JSON manifest in this tool’s documented v1 format.
  2. Select actual files or a folder and review the paths; choose whether to remove the selected folder’s root name.
  3. Run verification and wait for every readable file to finish. Canceling discards the run.
  4. Review all five outcomes, including any read failures. Filters affect the preview only.
  5. Download the complete report, or separately generate a new reference from readable actual files.

Use cases

  • Check that a transferred research-data bundle has every expected file
  • Locate a one-byte change after a handoff or backup copy
  • Prepare a reference manifest before sharing a small asset bundle

Frequently asked questions

Which manifest formats are supported?

Only this tool’s strict JSON format: format teck-tani-file-manifest, version 1, algorithm SHA-256, pathRule relative-posix-exact and files containing exactly path, size and sha256. Unknown fields, duplicate keys and paths, wrong digest lengths and unsupported algorithms are rejected. Integers must be nonnegative decimal literals, without exponent or fractional notation. Common checksum text formats are not imported.

How are file paths compared?

Paths are relative POSIX-style strings, compared exactly with case and Unicode code points preserved. Folder selection can remove exactly one root segment; flat file selection has only file names. No case folding, Unicode normalization or path guessing occurs. Absolute paths, backslashes, colons, dot segments, empty segments, control/bidirectional-control characters, unpaired surrogates and edge spaces are rejected. Paths have at most 512 Unicode characters and each segment at most 255.

What do the five verification outcomes mean?

Matched means path, byte size and SHA-256 all agree. Changed means an expected file differs in size or digest. Missing means no selected file has that path. Unexpected means a readable selected file is absent from the expectation. Indeterminate means its bytes could not be read completely; this takes precedence over unexpected. A read failure never counts as matched, and cancellation returns no report.

What are the limits and memory behavior?

At most 200 files per expected or actual set, 256 MiB per file, 1 GiB per set, and 256 KiB of UTF-8 manifest JSON. Hashing reads one 256 KiB slice at a time and yields between slices. The current browser read must settle before cancellation finishes; no second job starts in the meantime. Empty files are hashed correctly. Empty expected and actual sets match vacuously; that does not confirm any content. JSON-encoded path strings are limited to 200 KiB combined so a generated compact reference remains importable.

Does a match prove authenticity or safety?

No. It establishes consistency with the supplied manifest, whose source you must trust separately. The tool does not validate digital signatures, scan for malware, inspect archives, detect omitted empty folders or verify filesystem permissions, symbolic links or modification dates. It compares selected file bytes and paths, not two complete folder snapshots.

What do exports and reference generation include?

Reports contain every path even when the table is filtered. CSV uses UTF-8 BOM, CRLF and quoted fields; formula-shaped strings receive an apostrophe. JSON preserves original path strings. A new reference contains readable actual files only, including unexpected files and excluding missing expected files; it is unavailable if any read fails. Creating it does not overwrite the supplied expectation or establish a trusted publisher.

Privacy

Selected file contents, paths, hashes and reports are processed in page memory. This tool does not send them over the network or automatically store them. Choose downloads explicitly and treat the exported file names and hashes as potentially sensitive. Leaving the page discards unsaved results.

Related Tools

Hash GeneratorFile Size ConverterJSON FormatterWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →