Hashes, HMAC, URL encoding, JWT, UUIDs, passwords and colours — computed in your browser
MD5, SHA-1, SHA-256, SHA-384 and SHA-512 of text or raw HEX bytes, plus HMAC signatures for API and webhook auth.
Percent-encode query values, decode an encoded URL, and see a URL split into its parts and query parameters.
Reads the header and payload of a JSON Web Token, shows when it expires, and verifies HS256/384/512 signatures. The token never leaves your browser.
Random v4, or time-ordered v7 (sorts by creation time — better as a database key).
Cryptographically random, unbiased, with at least one character from each chosen set.
Random bytes for AES keys (16/24/32), API tokens or device secrets — as HEX, Base64 and a C array ready to paste into firmware.
HEX, RGB and HSL for the web, plus RGB565 / BGR565 / RGB332 for TFT and OLED displays (ILI9341, ST7735, ST7789, TFT_eSPI, Adafruit GFX). Edit any field.
A hash turns any input into a fixed-length fingerprint. The same input always gives the same hash, and a one-bit change gives a completely different one, which makes hashes ideal for checking that a file or firmware image arrived intact.
Hashes are not encryption: they cannot be reversed, and they hide nothing about short or guessable inputs. Store passwords with a slow, salted algorithm such as bcrypt or Argon2, not a plain hash.
A JSON Web Token is three Base64URL strings joined by dots: a header naming the algorithm, a payload of claims, and a signature. The first two are only encoded, not encrypted — anyone holding the token can read them, which is exactly what the decoder does. Never put secrets in a JWT payload.
The standard time claims are Unix timestamps in seconds: iat (issued at), nbf (not before) and exp (expires). The decoder shows each one as a local date and tells you whether the token is still valid. For HS256 tokens, entering the shared secret checks the signature; RS256 and ES256 tokens need the issuer's public key and are decoded only.
Most small SPI displays (ILI9341, ST7735, ST7789) take 16 bits per pixel: 5 bits red, 6 bits green, 5 bits blue. Libraries such as TFT_eSPI, Adafruit GFX and LVGL expect colours in this RGB565 form, so a web colour has to be packed before use.
The converter also shows the byte-swapped value, needed when pixels are pushed over SPI with DMA in little-endian order, and BGR565 for panels wired blue-first. The second swatch previews the colour after the precision is lost.
Every tool on this page runs entirely in your browser using JavaScript and the Web Crypto API. Your text, keys, tokens and generated passwords are never sent to IPerfect.Net or anywhere else.