Public Key Format Checker
Identify and decode any public key format (OpenSSH, SSH2/RFC4716, PEM PKCS#1/PKCS#8, JWK, XML, PGP), with SHA256/MD5 fingerprints, ASCII randomart, and bidirectional OpenSSH to/from PEM conversion.
What this tool does
Identifies which of nine real public key formats a pasted value
is, decodes its actual algorithm/size/curve, and for SSH-wire-based
keys computes the same SHA256 and MD5 fingerprints
and ASCII-art randomart that
ssh-keygen -lv produces -- plus converts a key
between OpenSSH and PEM format directly in the
browser.
Formats recognized
OpenSSH single-line (ssh-rsa,
ssh-ed25519, ssh-dss,
ecdsa-sha2-*), SSH2/RFC4716
multi-line blocks, PEM PKCS#8
(-----BEGIN PUBLIC KEY-----) and
PKCS#1 RSA-specific PEM, an
X.509 certificate (flagged, with a link to this
site's Certificate / DER Structure
Viewer for the full field decode), a private key (flagged as
such rather than mis-described), JWK JSON,
XML RSAKeyValue, a PuTTY .ppk
file (detected, not decoded -- that's a private key container
format), and a PGP ASCII-armored block (detected
only; full OpenPGP packet decoding is out of scope here).
SHA256 and MD5 fingerprints
For any SSH-wire-format key, both fingerprints are computed the
same way ssh-keygen -lf does: SHA256 is base64 of the
SHA-256 digest of the raw key blob (no padding, prefixed
SHA256:) — the modern default since OpenSSH 6.8. MD5
is the older colon-separated hex format, kept for compatibility
with tooling that still expects it.
ASCII-art randomart
The same "drunken bishop" visualization
ssh-keygen -lv draws — a walk across a 17×9 grid
driven two bits at a time by the fingerprint's bytes, useful as a
quick visual way to notice if two keys are different without
reading a full hex string character by character.
Key strength
RSA keys under 2048 bits are flagged as weak/deprecated; 2048–3071 bits is acceptable; 3072+ is strong. EC keys (P-256 and up) and Ed25519 are flagged strong by default, reflecting current best-practice guidance.
Converting between OpenSSH and PEM
An OpenSSH-format RSA, Ed25519, or EC (P-256/P-384/P-521) key
converts directly to a PEM PKCS#8 SubjectPublicKeyInfo
block, and the reverse — equivalent to what
ssh-keygen -e -m PEM / ssh-keygen -i -m
PKCS8 do locally, done here entirely client-side.
What this tool doesn't do
It never asks for or accepts a private key for conversion — only public key material. PGP and PuTTY .ppk are recognized but not decoded further; both have their own distinct container formats that are a different project in scope.
Privacy
Everything — detection, decoding, fingerprinting, randomart, and conversion — runs entirely in your browser. Nothing is uploaded.