thoughtasylumTOOLBOX Preview
An open toolbox, glowing blue, with a spanner, screwdriver, gear, pliers and ruler

Handy tools for handy people

Free online tools for the small jobs that crop up when you work with text, data, images and the web: encoders, formatters, converters, inspectors, generators and ciphers. Decode a JWT, tidy some JSON, convert a timestamp, compare two blocks of text, check a certificate, make a QR code, hide a message in a picture or run an Enigma machine, then get on with your day.

The ThoughtAsylum toolbox is privacy first - every tool is free, with no sign-up, and runs entirely in your browser, so nothing you paste or choose is uploaded anywhere online. Browse the lists below, open the tool drawers in the navigation bar, or use the search box to find the tool you need in just a few keystrokes.

Recently added or updated

Guides

Encoding

IdentifyPaste something you don't recognise, such as a token, a hash, an encoded string or a cipher, and get a list of what it probably is, with the reason and a link to the tool that handles it. Text ⇄ Base64Encode text (as UTF-8) or any file to Base64, optionally URL-safe, or decode it back; also Base32, Base58, Ascii85, Base45, Base100 and big integers. Image → Base64Choose an image to get its Base64, with or without the data: prefix. Base64 → ImagePaste Base64 to see the image and download it. URL Encode/DecodePercent-encode or decode at either of JavaScript's two levels. Typical (encodeURI) keeps a URL's structure (: / ? # & = and so on) and suits a whole URL; Aggressive (encodeURIComponent) encodes all but letters, digits and - _ . ! ~ * ' ( ), and suits one query value or path segment. JWT Decoder & EncoderA token's header and payload, with its times in local time and its lifetime. Check its signature with a secret, a public key or a JWK set, make and sign a new token, or convert keys between JWK and PEM. Certificate DecoderPaste a PEM certificate, or a chain of them, or choose a .pem, .crt, .cer or .der file, to see its subject, issuer, validity dates (flagging expired ones), alternative names, key type and size, key usage, serial number and SHA-256 and SHA-1 fingerprints, with a check that a chain links up. Also reads certificate signing requests (CSRs) and SSH public keys. URL InspectorSplits a URL, including app URL schemes and x-callback-url, into its parts and an editable list of query parameters, and rebuilds it with every parameter percent-encoded. Unwraps Outlook Safe Links, Proofpoint and redirect links, and defangs or refangs links for security reports. String EscaperEscape or unescape text as a JSON or JavaScript string, a single-quoted shell (zsh, bash) string, an AppleScript string, HTML or XML text, or a regular expression that matches it literally. Morse CodeText to Morse and back as you type, with a player that sounds the code and lights each letter in turn, and a decoder for Morse in a sound file or heard through the microphone. Compress / DecompressCompress or decompress text, Base64, hex or a file with gzip, zlib or raw deflate, using the browser's own compression.

Ciphers

Caesar / ROT13Shift letters along the alphabet, with ROT13, ROT5, ROT18 and ROT47, and every shift at once ranked by how English it reads. Classical CiphersAtbash, Affine, keyword substitution, keyed Caesar, Vigenère, Beaufort, Autokey, Gronsfeld, Porta, one-time pad, Playfair, Four-square, Bifid, Trifid, Nihilist, Rail Fence, columnar, double and AMSCO transposition, route and scytale, Polybius, Bacon, ADFGX, ADFGVX and Pigpen, both ways as you type. Encrypt / DecryptLock text or a file with a password using AES-256, in the same format as the openssl command, so either can open what the other makes. Image SteganographyHide a message or a small file inside a picture's pixels, optionally locked with a password, and reveal it again. Cipher CrackerPaste a ciphertext and it tries every Caesar, Affine and Atbash key, finds likely Vigenère and Beaufort keys, and tries Rail Fence, with the most English results first; on request it also solves keyword substitutions (cryptograms) and columnar transpositions. Enigma MachineA working Enigma I, M3 and M4, with rotors I–VIII, reflectors, ring settings and plugboard. Typing the ciphertext with the same settings decrypts it. Hidden TextHide a secret inside ordinary text with invisible characters, and find, decode and remove invisible characters someone else has hidden. Picture AlphabetsWrite text in pigpen, semaphore, maritime signal flags, Hexahue, Braille, Elder Futhark runes or Greek letters, and read it back by clicking the symbols you see. Visual CryptographySplit a word or picture into two images of random noise. Either alone shows nothing; laid on top of each other, they reveal the secret. Image EncryptionEncrypt a picture's pixels with a password into a viewable image of noise and back, or see why ECB mode leaks the outline. XOR CipherXOR text, hex or Base64 with a repeating key, and break single-byte and repeating-key XOR by trying keys and scoring the results. Secret SplitterSplit a secret into shares so that any chosen number of them recovers it and fewer reveal nothing, then combine shares back into the secret. Bit-Plane InspectorLook at each bit of an image's red, green, blue and alpha on its own, pull out the data in the low bits, and compare two images pixel by pixel. SpectrogramTurn text or a picture into a sound that draws it in a spectrogram, and see the spectrogram of any sound to find pictures hidden in it. Password GeneratorStrong passwords, XKCD-style passphrases of random words, PINs, API keys, hex and URL-safe tokens and slug IDs, with GRC's Password Haystack figures for how long a brute-force search would take, and a check of any password for common words and patterns. TOTP / HOTP CodesThe current one-time code from an authenticator secret or otpauth:// link, the codes either side, a QR code to add it to an authenticator app, and a check of a code. Number CodesText as the number codes puzzles use, A1Z26, A0Z25, the tap code, the phone keypad (multi-tap and T9) and Baudot, all at once, and each of them back to text; plus BCD and Gray code for numbers.

Data

JSON FormatIndent JSON with 2 or 4 spaces or tabs, minify it, or show it as a collapsible tree; repair loose JSON, sort its keys, and pick out values with a JSONPath query. XML FormatIndent XML, or minify it; pick parts out with an XPath query; convert XML to JSON and back. Code FormatMinify HTML, CSS, JavaScript, SQL or SVG, or lay it out again with 2 or 4 space or tab indents, and turn it into a syntax-highlighted picture. JSON ⇄ YAML ⇄ TOMLConvert between JSON, YAML and TOML in any direction, with 2 or 4 space indents. JSON to TypesTurn a sample of JSON, YAML or TOML, or SQL CREATE TABLE statements, into types for TypeScript, Python, Go, Rust, Swift, Java or PHP, or a JSON Schema. CSV ⇄ JSONConvert either way, or view the data as a table you can sort and filter. Plist ⇄ JSONConvert XML property lists (launchd jobs, Info.plist) to JSON and back, tab-indented like plutil. Chart MakerType or paste labels and values (separated by tabs, commas, colons, equals signs or spaces, or cells from a spreadsheet; a header row gives several series) and get columns, bars, stacked or 100% stacked columns and bars, a line, area, pie, doughnut, radar or treemap chart. PDF PagesCombine PDFs, pick out, delete or reorder pages, rotate them, or split a PDF into one file a page, without uploading anything. Data ValidatorCheck JSON, YAML, TOML or CSV as you type. The text is syntax-highlighted, and each problem is listed with its line and column and marked where it is. Test Data GeneratorRows of made-up data from a simple list of fields: numbers, dates, names, emails, choices, patterns, UUIDs and lorem ipsum, with blanks where you want them, as CSV, TSV, JSON, JSON Lines or SQL. A seed makes the same data every time.

Developer

Hash / ChecksumMD5, SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3, RIPEMD-160, CRC-32 and Adler-32 of text or a file, HMACs with a key, and a check of a published hash that also says what kind of hash it is. BcryptHash a password with bcrypt at the cost you choose, and check a password against a bcrypt hash, with the hash's cost and salt shown. UUID GeneratorUp to 1,000 UUIDs as version 4 (random), 7 (time-ordered), 1 (time-based) or 5 (from a namespace and name), ULIDs, NanoIDs and MongoDB ObjectIds, and a tool to read any of them. CalculatorWork out expressions line by line, with exact whole numbers of any size (powers, modular inverse and power, GCD, primes and factors) or ordinary decimals with maths functions. Timestamp ConverterUnix time in seconds, milliseconds, microseconds or nanoseconds (told apart by length), or a date, shown as Unix time, ISO 8601, local time, UTC and how long ago; also Windows FILETIME, Apple Cocoa and Excel times, and the times inside ULIDs, ObjectIds and Snowflake IDs. Truth TableType a boolean expression, in symbols, words or code, to get its truth table, its simplest form and its minterms; type two to check they're equivalent. Number BasesDecimal, hexadecimal, octal, binary, Base62 and any base from 2 to 36; type in any box. Also a number as a fixed-width signed integer with its byte order, and text as binary, octal, decimal or hex character codes. HTTP Codes & MIME TypesEvery HTTP status code with what it means, and the MIME type for common file extensions, searchable by number, name, word or extension. User Agent ParserRead a User-Agent string: the browser and version, its engine, the operating system and the kind of device, with this browser's own string and client hints. Key CodesPress a key to see what JavaScript gets: event.key, event.code, the old keyCode and which, the key's location, and the modifiers held. cURL to CodePaste a curl command, a raw HTTP request or a HAR from your browser, and get the same request as curl, Python requests, JavaScript fetch, Go or PHP. Unit ConverterType a value in one unit and see it in every other unit of its kind: data size (decimal and binary), time, length, mass, temperature, area, volume, speed, angle, pressure and energy; and percentages between two numbers. docker run to ComposePaste one or more docker run commands and get the compose.yaml that runs the same containers: ports, volumes, environment, networks, limits and health checks. Diff CheckerCompare two texts line by line, with the changed words inside each line highlighted, side by side or as a unified diff. Or compare two JSON or YAML documents, ignoring formatting and key order. Regex TesterTest a regular expression as you type. The pattern is colour-coded and explained piece by piece, every match and capture group is highlighted in the text in matching colours and listed in a table, and a replacement is previewed. Cron ExplainerDescribes a cron expression in English, lists its next 10 runs, and gives the launchd StartCalendarInterval that matches it, with a builder for writing one from menus and tick boxes. PermissionsFile modes as checkboxes, octal (755) and the ls -l form (rwxr-xr-x), including setuid, setgid and sticky, with the matching chmod commands. Subnet CalculatorThe network, netmask, broadcast address and usable host range of an IPv4 or IPv6 address with a CIDR prefix or a netmask, the network split into smaller subnets or listed address by address, a list of addresses grouped by network, and random IPv6 unique local prefixes and MAC addresses. Date CalculatorThe days, weeks, months and business days between two dates, and a date plus or minus a number of days, weeks, months, years or business days, with its ISO week number. Path ConverterA path in any form (POSIX, ~, Terminal-escaped or quoted, HFS such as Macintosh HD:Users:…, file:// URL, AppleScript POSIX file, smb:// URL or Windows \\server\share) fills a field for each form at once, each with a Copy button: POSIX, from home, quoted for the shell, a file:// URL, HFS, AppleScript POSIX file, and, for a network share in /Volumes with an SMB server given, an smb:// URL and a Windows UNC path. World ClockPlaces side by side with the hours of the day lined up, so you can pick a meeting time that suits everyone, with working hours shaded and daylight saving handled for the date you choose. Hex ViewerA file's bytes in hex, with each character shown above its bytes (UTF-8 included, control characters as symbols), 4 KB at a time and read straight from the file, so large files are fine; plus its entropy, the text inside it, and any files hidden inside it. Web ScratchpadHTML, CSS and JavaScript, each in its own syntax-highlighted tab, run together as one page, on ⌘/Ctrl-Enter, the Run button or as you type. Result and Console tabs show the page, and its console output and uncaught errors (with the line in the JavaScript tab).

Text

Text CleanerBuild a recipe of clean-up steps and run them in order: trim and collapse spaces, remove blank, duplicate or matching lines, unwrap PDF text, sort, change case, find and replace, and strip HTML, Markdown or AsciiDoc; wrap, pad or number lines; and pull out email addresses, URLs, IP addresses or hashes. Save recipes, export them or share them as a link. Markdown & HTML PreviewType or paste Markdown (GitHub-flavoured: tables, task lists, strikethrough) or HTML and see it rendered below. Markdown TableTurn a Markdown table, CSV, or rows pasted from a spreadsheet into a Markdown table, with the columns lined up and any alignment kept. Character InspectorEach character's code point, UTF-8 bytes and type, with counts of characters, code points and bytes; repair garbled text (café), see text read in other encodings, and convert domain names to and from Punycode. Case & StyleEvery version of the text at once, each with a Copy button: upper, lower, sentence, capitalised and smart title case, swapped and alternating case; camelCase, PascalCase, snake_case, kebab-case and other code styles; diacritics, punctuation, symbols, emoji or numbers removed, plain ASCII, smart or straight quotes, lines joined and text reversed; and Unicode styles such as bubble letters, bold, italic, script, Fraktur, double-struck, monospace, full width, small caps, upside down, strikethrough and Zalgo, plus leetspeak, ROT13, Pig Latin, numeronyms (i18n), Braille and the NATO alphabet. Phonetic SpellingSpell text out in the NATO alphabet (or the German DIN 5009, Western Union or LAPD alphabets), with capitals, digits and every symbol named, to read a password or code over the phone; type back what you heard to check it, or have it read aloud. Sort LinesSort lines, comma-separated items or words A–Z, Z–A, naturally (item 2 before item 10), by last word, by character code, by number (also by absolute value), by length or word count, by date, reversed or shuffled. Frequency AnalysisHow often each word, word pair, character, letter or letter pair appears, with counts, percentages and bars, optionally skipping common words, with the index of coincidence, chi-squared and entropy for breaking ciphers. Text StatisticsWords, characters, sentences, paragraphs, syllables and more; averages per word, sentence and paragraph; reading, speaking, typing and handwriting times; reading age and five readability scores (Flesch–Kincaid, Gunning fog, SMOG, Coleman–Liau, ARI); and curiosities such as the longest word, most used word, vocabulary variety, adverbs, whether it's a pangram, and how many posts or text messages it would take. List CompareTwo lists in, and out come the items only in the first, only in the second, in both, and in either, each counted once, with counts. NumeralsA number as Roman numerals, in English words (British and American), and in Mayan, Babylonian and other scripts' digits; or a Roman numeral or number in words back to the number. Random PickerPick names from a list, shuffle it, split it into groups, choose random numbers, roll dice in 2d6+3 notation or flip coins, fairly, with your browser's secure random numbers. Anagram SolverRearrange jumbled letters, a name or a phrase into other words and phrases that use every letter, and list every word the letters can make. Crossword HelperType the letters you know and a ? for each one you don't, and see every word that fits; or find words starting with, ending with or containing letters, matching a regular expression, or fitting your Wordle clues. Markup ConverterConvert between HTML, Markdown, AsciiDoc and plain text in any direction, as you type. Redact for AISwap API keys, tokens, passwords, email and IP addresses, and names you list, for numbered placeholders before pasting text into an AI chat, then put the originals back into its reply.

Images

Image Convert / ResizeSave an image, from a file or a web address, as JPEG, PNG, WebP or GIF, at a chosen size and quality, cropped, rotated or flipped if you like. SVG Preview & ExportPaste SVG code (syntax-highlighted) or choose a .svg file to see it on a checkerboard, white, black or page background, with its size from width/height or the viewBox. Colour ConverterPick a colour from a saturation and brightness square with hue and opacity sliders, the system colour picker, the screen (in Chrome and Edge), or any CSS colour typed in (#hex, rgb(), hsl(), oklch(), names). Photo MetadataSee the hidden data in a photo (camera, settings, date, GPS location, XMP, C2PA content credentials) and save a copy without it, the picture itself unchanged. Image PaletteFind the main colours in a photo, logo or screenshot, with how much of the picture each covers, as hex codes and CSS variables. Photo CensorDraw boxes over faces, number plates, names or numbers in a picture or screenshot and pixelate, blur or black them out before you share it. Image to Text (OCR)Copy the text out of a screenshot, photo or scan with optical character recognition (Tesseract) in English and 26 other languages, run in your browser, so the picture is never uploaded. QR CodeMake a QR code for text, a URL, a Wi-Fi network or a contact card, with a PNG download, or read one from an image. BarcodesMake Code 128, EAN-13, UPC-A, EAN-8 and Code 39 barcodes as SVG or PNG, with check digits worked out; read barcodes from a picture where the browser can. Animated GIF MakerTurn still images into an animated GIF: set their order, how long each one shows, and whether it loops. GIF Frame ExtractorSplit an animated GIF into its frames, with each frame's delay, and save them as PNG images.
↑ ↓ move↵ openesc close