RSA verify

Check whether an RSA signature is authentic — PKCS#1 v1.5 or PSS, SHA-256/384/512 — against a public key. Runs in your browser; nothing is uploaded.

Verification result

About this tool

RSA verify checks whether an RSA signature is authentic for a given message and public key. If verification succeeds, the message came from the holder of the matching private key and was not altered in transit.

Privacy

Everything runs in your browser via WebAssembly — the message, signature, and public key are never uploaded to a server. You can also run it from the gizza CLI or inside a gizza chat.

Notes

FAQ

The signature is definitely right — why do I get INVALID?

Nine times out of ten the scheme or hash doesn't match the signer. A PSS signature will never verify under pkcs1v15 (and vice versa), and SHA-256 vs SHA-512 are just as incompatible. Check what the signing side used; if unsure, start with PKCS#1 v1.5 + SHA-256, then try PSS. A wrong public key or an altered message (even a trailing newline) also yields INVALID.

What format must the signature be in?

Standard base64 of the raw signature bytes — exactly what OpenSSL's base64 output or any RSA library gives you. Hex signatures need converting to base64 first; malformed base64 is reported as an input error, distinct from a clean INVALID verdict.

Which public-key formats are accepted?

PEM in either form: SPKI (-----BEGIN PUBLIC KEY-----) or PKCS#1 (-----BEGIN RSA PUBLIC KEY-----). Both are tried automatically, so you don't need to know which one you have. Private keys are not accepted — verification only ever needs the public half.

Is an INVALID result the same thing as an error?

No. INVALID is a real cryptographic verdict: the inputs parsed fine but the signature does not match the message under that key/scheme/hash. An error means an input was malformed (bad PEM, bad base64, unknown scheme or hash) and verification never ran.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool rsa-verify "The original message that was signed" 'signature=The base64-encoded signature to verify' 'public_key=-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/rsa-verify/?message=The%20original%20message%20that%20was%20signed&signature=The%20base64-encoded%20signature%20to%20verify&public_key=-----BEGIN%20PUBLIC%20KEY-----%0A...%0A-----END%20PUBLIC%20KEY-----&scheme=pkcs1v15&hash=sha256

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.