// signature verification

Signature Verification

Every article on this blog is signed with ML-DSA-65 (NIST FIPS 204). You can check any signature yourself here. All you need is the public key and the article data.

A signature records what an article looked like when it was published. If someone changes the text later, for example directly in the database, the signature no longer matches and verification fails. ML-DSA-65 is considered secure against quantum computers, so the signatures stay meaningful once such machines exist. Verification runs entirely in your browser.

Public Key (ML-DSA-65)

48904116e9d8f6f65aa54c03c32b8a1f81519744…daadaaa4c456dfc1

Signed Message Format

documentId | locale | title | blocks (JSON, media = SHA-256 hashes)

The four fields are joined with | and passed as UTF-8 bytes straight to ML-DSA-65, without hashing them first. ML-DSA processes the message internally with SHAKE-256 (FIPS 204, section 5.2). Media files are embedded in the blocks as SHA-256 hashes. The verifier fetches the title and blocks from Strapi itself, so you only need to enter the document ID.

Enter Signature