Zero Signup ToolsFree browser tools

Security Tools

PEM Public Key Inspector

Decode PEM-encoded RSA, EC, and Ed25519 public keys in your browser. Modulus, curve, exponent, JWK, OpenSSH line, SHA-256, SHA-1, MD5 fingerprints.

Input

PEM-encoded public or private key

Summary

Paste a PEM block to inspect.

How to use

  1. Paste a PEM block beginning with -----BEGIN PUBLIC KEY----- (most common), -----BEGIN RSA PUBLIC KEY-----, -----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY-----, or -----BEGIN EC PRIVATE KEY-----.
  2. The summary identifies the algorithm and key size as soon as the bytes parse. Errors point to the exact reason the key was rejected so you can fix it without guessing.
  3. Inspect the RSA modulus and exponent, EC curve and X/Y coordinates, or the raw 32-byte / 57-byte public key for Edwards and Montgomery curves.
  4. Copy the SHA-256 fingerprint to compare against openssl, your CI logs, or a cloud KMS console. The SHA-1 and MD5 fingerprints are produced for legacy tools that still use them.
  5. Use the JWK output to verify a JWS or JWE in a JOSE library, or copy the OpenSSH line into ~/.ssh/authorized_keys or a GitHub SSH key form.
  6. Click any sample button to load an RSA SPKI, PKCS#1 RSA, EC P-256, or Ed25519 example you can edit.

About this tool

PEM Public Key Inspector decodes PEM-encoded RSA, EC, Ed25519, Ed448, X25519, and X448 public keys directly in your browser and surfaces every field you need to verify, compare, or convert them. It accepts the labels developers actually paste: BEGIN PUBLIC KEY for SubjectPublicKeyInfo (RFC 5280 and RFC 8410), BEGIN RSA PUBLIC KEY for PKCS#1 RSAPublicKey (RFC 8017), and the three common private key wrappers (BEGIN PRIVATE KEY for PKCS#8, BEGIN RSA PRIVATE KEY for PKCS#1, BEGIN EC PRIVATE KEY for RFC 5915), in which case only the derived public information is shown so the page never reveals private scalars. For RSA keys the tool extracts the modulus bit length (1024, 2048, 3072, 4096, or whatever the key actually is, tightened to the leading bit), the full modulus in colon-separated hex, and the public exponent in decimal and hex. For EC keys it maps the curve OID to the human name (P-256, P-384, P-521, secp256k1, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1), validates the uncompressed point against the curve field size, and splits it into X and Y coordinates. For Edwards and Montgomery keys it surfaces the raw public key bytes and labels them with the right RFC 8410 algorithm name. Every key is fingerprinted by re-encoding it as canonical SubjectPublicKeyInfo DER and hashing the bytes with SHA-256, SHA-1, and MD5, so the SHA-256 fingerprint matches the value produced by openssl pkey -in key.pem -pubout -outform DER piped into openssl dgst -sha256. A JWK conversion (RFC 7517 / RFC 7518 / RFC 8037) is generated for every supported key type, and a one-line OpenSSH authorized_keys form is generated for RSA, Ed25519, and EC P-256/P-384/P-521 keys so you can drop the key straight into GitHub, GitLab, or ~/.ssh/authorized_keys. The ASN.1 parser, the SPKI re-encoder, the JWK conversion, and the OpenSSH encoder all run locally in JavaScript; the SHA-256 and SHA-1 hashes use the Web Crypto API and the MD5 fingerprint uses a small in-page implementation, so nothing you paste here is uploaded.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsSecurity Tools