Plugin Checksums

Published by WPManageNinja

Every file of every published release, fingerprinted with MD5 and SHA-256. Check whether the plugin files on a site are the files we shipped — no account, no license key, no request that identifies the site being checked.

Coverage starts 14 Aug 2026. We publish checksums from the current release of each product forward, not for versions released before this service existed. If a version is not listed, we have no manifest for it — that is a gap in our coverage, not a finding about the files.

14Products
14Versions
3,508Files fingerprinted
14 Aug 2026Last updated

The register

AzonPress azonpress
2.3.1169 filesadded 14 Aug 2026
Zip SHA-256 · 2.3.1 b4649f1ec4371baadf9a63dac25c03a616d846e4945769e97c1b42cbf9613020
FluentHub fluent-toolkit
2.1.0315 filesadded 14 Aug 2026
Zip SHA-256 · 2.1.0 893650168cc88929bdb0feb82e3808245aeb315a8a3acc62a0ca266302143cea
FluentCRM Pro fluentcampaign-pro
3.1.11338 filesadded 14 Aug 2026
Zip SHA-256 · 3.1.11 854b7cc7003fe11921295488f8ad3d8ba7900917e73c4c882f4f17983416ab7b
Paymattic Pro wp-payment-form-pro
4.6.24237 filesadded 14 Aug 2026
Zip SHA-256 · 4.6.24 f77b11f7afddbe58adf9ab21656ba881ddf9e7ba00e6884b6a8a7c4ce4ab052b

Check a download

Hash the zip you received and compare it to the digest listed above. This tells you the archive is ours before you unpack anything.

$ shasum -a 256 azonpress.zip
b4649f1ec4371baadf9a63dac25c03a616d846e4945769e97c1b42cbf9613020  azonpress.zip

Compare the whole string. A matching prefix means nothing on its own.

Check an installed plugin

Fetch the manifest for the version on the site and compare every file. The manifest lists paths relative to the plugin directory, so demo-pro.php means wp-content/plugins/demo-pro/demo-pro.php.

# every file in one released version
curl https://checksums.wpmanageninja.com/plugin-checksums/{slug}/{version}.json

# which versions exist
curl https://checksums.wpmanageninja.com/plugin-checksums/{slug}/index.json

# everything we publish
curl https://checksums.wpmanageninja.com/plugins.json

Endpoints

PathReturns
/plugin-checksums/{slug}/{version}.jsonChecksums for one release
/plugin-checksums/1.0/?slug=…&version=…The same, query-string form
/plugin-checksums/{slug}/index.jsonEvery published version of one plugin
/plugins.jsonEvery plugin listed above

GET and HEAD only, CORS open, ETag honoured. A published version never changes, so it is served immutable and can be cached forever.

Format

The plugin, version and files keys are byte-compatible with the WordPress.org checksum API, so anything that already reads downloads.wordpress.org/plugin-checksums/ reads this too. Our additions live under _meta, where strict consumers can ignore them.

{
  "plugin": "example-pro",
  "version": "1.4.2",
  "files": {
    "example-pro.php": { "md5": "…", "sha256": "…" }
  },
  "_meta": {
    "zipSha256": "…",       // the digest listed above
    "fileCount": 412,
    "softChange": [ … ],    // may differ without meaning tampering
    "ignore": [ … ]         // written after install; skip these
  }
}

What this does and does not tell you

A mismatch means a file differs from what we published. That is worth investigating, but it is not proof of compromise on its own: FTP transfers in text mode rewrite line endings, and site owners sometimes patch plugins deliberately.

A clean result is narrower than it looks. It says the plugin directory matches our release. It says nothing about the rest of the site, and nothing about whether the release itself was safe. These manifests are served over TLS but are not yet signed, so they carry the same trust model as the WordPress.org checksum API.