# million.tools — Full Documentation & Tools Catalog > A complete repository of documentation, parameters, and usage guides for all developer and text utilities on million.tools. --- # Tool: Argon2 Hash Generator - **URL:** https://million.tools/argon2/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [CRC-16 Calculator](https://million.tools/crc16/) - **Description:** Use this Argon2 hash generator to create a Argon2 password hash. Hash text or encoded bytes and copy the complete salted result for verification. ## Parameters - `input_text`: Input text. - `hmac_key`: Salt (Optional / Auto-generated). - `kdf_iterations`: Number. Iterations / Work Factor - `kdf_length`: Number. Key Length (Bytes) - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` ## Usage & Behavior This Argon2 hash generator creates a salted password hash from text or encoded bytes. Use it to prepare development fixtures and understand the encoded value needed for verification. Password hashing is one-way; it does not encrypt a password for later decryption. Use the steps below to create a Argon2 password hash. 1. Type or paste a non-sensitive test password into Input text. 2. Use Input Encoding: to describe the password: UTF-8 for normal text, or Hex or Base64 for encoded bytes. 3. Keep Auto / Live on to update the result as you edit. To work manually, turn Auto / Live off and click Run. 4. Read Argon2 Hash Result and retain the complete encoded string. 5. Click Copy to copy the result. Use Clear where shown, or a field's clear control, to clear the text. --- # Tool: AES Encryption - **URL:** https://million.tools/aes-encryption/ - **Category:** Cryptography - **Execution:** Client-side (JavaScript) - **Related:** [AES Decryption](https://million.tools/aes-decryption/) - **Description:** Use AES encryption to encrypt text with AES-256-CBC. This AES encryptor accepts encoded input and keys, with Hex or Base64 ciphertext output. ## Parameters - `input_text`: Plaintext. - `aes_file`: File. File to Encrypt - `hmac_key`: Key. - `cipher_iv`: IV. - `passphrase`: Passphrase. - `ikm`: Input Key Material. - `salt`: Salt. - `info`: Info. - `iteration`: Number. Iterations - `block-size`: Number. Block Size (r) - `parallelism`: Number. Parallelism (p) - `argon2-memory-size`: Number. Memory Size (KiB) - `argon2-iterations`: Number. Iterations - `argon2-parallelism`: Number. Parallelism - `nonce`: Nonce. - `aad`: Additional Authenticated Data. - `tag-length`: Number. Authentication Tag Length (Bytes) - `input-source`: `Text` | `File` - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `key-size`: `128 Bits` | `192 Bits` | `256 Bits` - `mode`: `CBC` | `CFB` | `CTR` | `OFB` | `ECB` | `GCM` | `CCM` - `padding`: `Pkcs7` | `Pkcs5` | `Iso97971` | `AnsiX923` | `Iso10126` | `ZeroPadding` | `NoPadding` - `key-type`: `Custom` | `PBKDF2` | `EvpKDF` | `HKDF` | `Scrypt` | `Argon2` - `key-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `iv-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `hash`: `MD5` | `SHA1` | `SHA224` | `SHA256` | `SHA384` | `SHA512` | `RIPEMD160` | `KECCAK512` - `format`: `OpenSSL (Salted__)` | `None` - `ikm-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `salt-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `info-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `custom-iteration`: Boolean. Custom Iteration. - `log-n`: `1,024 (2^10)` | `2,048 (2^11)` | `4,096 (2^12)` | `8,192 (2^13)` | `16,384 (2^14)` | `32,768 (2^15)` | `65,536 (2^16)` | `131,072 (2^17)` | `262,144 (2^18)` | `524,288 (2^19)` | `1,048,576 (2^20)` - `argon2-mode`: `Argon2id` | `Argon2i` | `Argon2d` - `nonce-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `aad-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `append-tag`: Boolean. Append Authentication Tag to Output. - `tag-input-type`: `Hex` | `Base64` - `output_format`: `Hex (Lower Case)` | `Hex (Upper Case)` | `Base64` ## Usage & Behavior AES encryption transforms text or encoded bytes into ciphertext using AES-256-CBC in this form. Supply a key, choose Hex or Base64 output, and copy the result for a compatible decryption test. Each result includes a fresh random IV before the encrypted bytes. Use the steps below to encrypt a test message. 1. Type Hello or another non-sensitive test message into Plaintext. Set Input Encoding: to UTF-8 for normal text. 2. Keep Encryption Key & Parameters enabled. Enter the key in Encryption Key / Password and choose its representation with Key Encoding (Search/Type):. 3. Choose Hex (lower), Hex (UPPER), or Base64. The output label mentions Base64, but the selected radio button determines the representation. 4. Keep Auto / Live on to update the result as you edit. To work manually, turn Auto / Live off and click Run. 5. Read Encrypted Ciphertext (Base64). Keep the complete result, including the IV prefix, and record the selected representation. 6. Click Copy to copy the result. Use Clear where shown, or a field's clear control, to clear the text. --- # Tool: Transform Text to Uppercase - **URL:** https://million.tools/convert-to-uppercase/ - **Category:** Transferring - **Execution:** Client-side (JavaScript) - **Related:** [Find and Replace Words](https://million.tools/find-and-replace-text/) - **Description:** Transform text to uppercase with an uppercase converter. Capitalize each word or row, convert all letters to capitals, or generate random case text. ## Parameters - `input_text`: Insert list. - `uppercase`: `ALL SYMBOLS` | `First letter of each row` | `First Letter Of Each Word` | `RaNdoM syMBoLS` ## Usage & Behavior Transform text to uppercase or capitalize the starts of rows and words. Choose full capitals, selective capitalization, or random case while keeping the text arranged in its original rows. Choose the capitalization rule that matches the text you want to produce. 1. Paste the source text into Insert list. Keep separate rows if you want to capitalize each row independently. 2. Under Mode, choose ALL SYMBOLS, First letter of each row, First Letter Of Each Word, or RaNdoM syMBoLS. 3. Click Transform to process the current input. 4. Read Result and Number of rows. Check the selected capitalization rule before copying the text. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Add All Numbers in a Column - **URL:** https://million.tools/sum-numbers-in-column/ - **Category:** Counting - **Execution:** Client-side (JavaScript) - **Related:** [Count Rows](https://million.tools/count-lines/) - **Description:** Add all numbers in a column with a column sum calculator. Sum a list of numbers, including positive and negative decimals, and copy the total. ## Parameters - `input_text`: Insert list. ## Usage & Behavior Add all numbers in a column to obtain a total from one number per row. The column sum calculator accepts positive and negative decimal values, making it useful for checking simple numeric lists. Prepare a numeric column with one value per row before calculating its total. 1. Paste one number per row into Insert list. Keep labels and currency symbols out of the numeric entries. 2. Click Sum to process the current input. 3. Read the total in Result. Blank rows are ignored; a nonempty row containing an invalid number prevents a valid sum. 4. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. For 12.5, 7.25, -2, and 0.25 on separate rows, Result is exactly 18. --- # Tool: Replace Spaces with Line Breaks - **URL:** https://million.tools/replace-spaces-with-line-breaks/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Replace Line Breaks with Spaces](https://million.tools/replace-line-breaks-with-spaces/) - **Description:** Replace spaces with line breaks to put one word per line. Use spaces to newlines conversion with optional capitalization and copy the resulting list. ## Parameters - `input_text`: Insert list. - `capitalize`: Boolean. Begin with uppercase letters. ## Usage & Behavior Replace spaces with line breaks to turn whitespace-separated words into a vertical list. The tool can capitalize the starts of the resulting entries while preserving their original sequence. Place each whitespace-separated item on its own line, with optional initial capitalization. 1. Paste the words or passage into Insert list. Whitespace separates the items to place on individual rows. 2. Keep Begin with uppercase letters selected to capitalize the start of each item, or clear it to preserve the original case. 3. Click Move to process the current input. 4. Read Result and Number of rows. Each whitespace-separated item appears on its own row. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Replace Line Breaks with Spaces - **URL:** https://million.tools/replace-line-breaks-with-spaces/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Repeat Text](https://million.tools/repeat-text/) - **Description:** Replace line breaks with spaces to join text lines. Remove line breaks from pasted lists with optional lowercase conversion, then copy the single-line result. ## Parameters - `input_text`: Insert list. - `lowerize`: Boolean. Transform to lowercase. ## Usage & Behavior Replace line breaks with spaces to turn a pasted column or wrapped passage into one line. The tool joins the source rows and can lowercase the result for consistent text formatting. Check the capitalization option before joining the rows into a single text sequence. 1. Paste the rows into Insert list. Keep the line breaks you want to replace in the source. 2. Leave Transform to lowercase selected to lowercase the joined text, or clear it to preserve the source capitalization. 3. Click Remove line breaks to process the current input. 4. Read Result as a single line. A space replaces each line break; existing spaces inside the source rows remain. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Find and Replace Words - **URL:** https://million.tools/find-and-replace-text/ - **Category:** Transferring - **Execution:** Client-side (JavaScript) - **Related:** [Add a Prefix or Postfix](https://million.tools/add-prefix-suffix/) - **Description:** Find and replace words with bulk text replacement. Replace multiple words using one shared replacement or paired rows, with optional case sensitivity. ## Parameters - `input_text`: Insert text. - `needle`: Words or rows to search for. - `replacement`: Replacement rows. - `case_sensivity`: Boolean. Case-sensitive. ## Usage & Behavior Find and replace words across pasted text using a list of literal search terms. Use one shared replacement or align several replacement rows with the search rows to update multiple terms in one operation. Align the search and replacement rows, or supply one replacement for every search term. 1. Paste the source into Insert text. Put one nonempty search term per row in Words or rows to search for, then fill Replacement rows. 2. Use one replacement row for every search term, or the same number of replacement rows as search rows for positional pairing. Select Case-sensitive to preserve case in unmatched source text and match exact capitalization. 3. Click Replace to process the current input. 4. Read Result, Number of rows, and Number of replacements. With Case-sensitive off, the source is lowercased before matching; supplied replacement text keeps its own case. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Repeat Text - **URL:** https://million.tools/repeat-text/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Divide a List into Groups](https://million.tools/split-list-into-groups/) - **Description:** Repeat text with a text repeater. Duplicate text a specified number of times, separate copies with line breaks or commas, and copy the result. ## Parameters - `repeat`: Number. Number of repeats - `input_text`: Insert list. - `mode`: `Line break` | `Comma` ## Usage & Behavior Repeat text a specified number of times to create sample content or repeated string patterns. Choose line breaks or commas between copies and review the complete result before copying it. Start with the text block and separator you want repeated, then set the total copy count. 1. Paste the text to repeat into Insert list. A multiline input is treated as one complete text block. 2. Set Number of repeats. Under Separate repeats with, select Line break or Comma. 3. Click Execute to process the current input. 4. Read Result. The requested count is the total number of copies, with separators only between copies. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Remove Extra Spaces - **URL:** https://million.tools/remove-extra-spaces/ - **Category:** Remove - **Execution:** Client-side (JavaScript) - **Related:** [Remove Empty Lines](https://million.tools/remove-empty-lines/) - **Description:** Remove extra spaces and trim whitespace in each row. Remove double spaces, delete empty rows, or remove all spaces while retaining line breaks. ## Parameters - `input_text`: Insert list. - `mode`: `Remove extra spaces` | `Remove extra spaces and empty rows` | `Remove all spaces` ## Usage & Behavior Remove extra spaces to make spacing within pasted rows consistent. Choose ordinary spacing cleanup, remove blank rows as well, or delete horizontal whitespace while keeping separate lines. Choose whether to normalize spacing, discard blank rows, or remove horizontal whitespace. 1. Paste the text into Insert list. Keep any line breaks that should remain between entries. 2. Under Mode, select Remove extra spaces, Remove extra spaces and empty rows, or Remove all spaces. 3. Click Remove spaces to process the current input. 4. Read Result and Number of rows. The first two modes trim row edges and collapse repeated horizontal whitespace; the third removes horizontal whitespace entirely. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Remove Empty Lines - **URL:** https://million.tools/remove-empty-lines/ - **Category:** Remove - **Execution:** Client-side (JavaScript) - **Related:** [Remove Characters from the Beginning or End](https://million.tools/remove-characters-from-start-or-end/) - **Description:** Remove empty lines with a blank line remover. Delete empty rows and whitespace-only lines while keeping the remaining text in its original order. ## Parameters - `input_text`: Insert list. ## Usage & Behavior Remove empty lines from a pasted list while keeping the nonempty rows in order. The blank line remover also deletes rows made entirely of whitespace, which can be hard to spot in copied text. Remove blank entries while keeping the surrounding nonempty rows separate. 1. Paste the list into Insert list. Leave the blank rows in place so the tool can identify and remove them. 2. Click Remove breaks to process the current input. 3. Read Result, Rows remaining, and Empty rows deleted. Nonempty entries stay on separate rows. 4. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. For Apple, an empty row, a row containing only spaces, and Pear, Result is Apple followed by Pear. Two rows remain and two empty rows are deleted. --- # Tool: Add a Prefix or Postfix - **URL:** https://million.tools/add-prefix-suffix/ - **Category:** Transferring - **Execution:** Client-side (JavaScript) - **Related:** [Extract or Remove Numbers](https://million.tools/extract-numbers-from-list/) - **Description:** Add a prefix or postfix to each row. Add prefix to lines or add suffix to lines, review the result, and copy the updated list. ## Parameters - `input_text`: Insert list. - `needle`: Enter prefix or postfix. - `postfix`: Boolean. Postfix. ## Usage & Behavior Add a prefix or postfix to every row of a pasted list. Put shared text before each entry or after it to build simple labels, code fragments, or repeated string patterns. Prepare one shared affix and choose which end of each row receives it. 1. Paste the source rows into Insert list. Enter the text to add in Enter prefix or postfix. 2. Leave Postfix cleared to prepend the text. Select Postfix to append the text after each row instead. 3. Click Add to process the current input. 4. Read Result and Number of rows. The tool joins the added text directly to each row without inserting an automatic separator. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Extract or Remove Numbers - **URL:** https://million.tools/extract-numbers-from-list/ - **Category:** Transferring - **Execution:** Client-side (JavaScript) - **Related:** [Transform Text to Lowercase](https://million.tools/convert-to-lowercase/) - **Description:** Extract or remove numbers from each row. Extract digits from lines as comma-separated groups, or retain text before the first number in each row. ## Parameters - `input_text`: Insert list. - `mode`: `Extract numbers from list` | `Remove numbers from list` ## Usage & Behavior Extract or remove numbers using two distinct row-based operations. Extract digit groups for a quick list, or keep only the text that appears before the first digit in each row. Choose between collecting digit groups and keeping the text before the first digit. 1. Paste the source rows into Insert list. Keep related text and numbers on the same row. 2. Under Mode, choose Extract numbers from list to collect digit groups. Choose Remove numbers from list to keep the trimmed text before the first digit. 3. Click Execute to process the current input. 4. Read Result and Number of rows. Extraction omits rows without digits; the removal mode returns a text prefix for every source row. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Transform Text to Lowercase - **URL:** https://million.tools/convert-to-lowercase/ - **Category:** Transferring - **Execution:** Client-side (JavaScript) - **Related:** [Backward Text (Flipping)](https://million.tools/flip-text/) - **Description:** Transform text to lowercase with a lowercase converter. Convert text to lowercase completely, or lowercase randomly selected letters while keeping the rest. ## Parameters - `input_text`: Insert list. - `lowercase`: `All symbols` | `Random symbols` ## Usage & Behavior Transform text to lowercase to normalize capitalized text or selectively lowercase random letters. The tool keeps the row structure while changing case, making it useful for cleaning labels or producing mixed-case samples. Use complete conversion for consistent letter case or random selection for a variable text effect. 1. Paste the source text into Insert list. It can contain one row or several rows. 2. Under Mode, choose All symbols for complete lowercase conversion. Choose Random symbols to lowercase randomly selected letters while leaving other characters unchanged. 3. Click Transform to process the current input. 4. Read Result and Number of rows. Numbers, punctuation, and line breaks are not converted into letters. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Divide a List into Groups - **URL:** https://million.tools/split-list-into-groups/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Move Words to a Column](https://million.tools/words-to-column/) - **Description:** Divide a list into groups after shuffling the entries. Create fixed-size groups or random-sized groups, then copy the groups separated by blank lines. ## Parameters - `count`: Number. Elements per group - `input_text`: Insert list. - `random`: Boolean. Divide into random-sized groups. ## Usage & Behavior Divide a list into groups after shuffling its entries. Choose a fixed number of elements per group or let the tool produce groups of varying sizes for informal assignments and sample batches. Choose group sizes for shuffled assignments, then review the membership of each group. 1. Paste one item per row into Insert list. Remove unintended empty rows if they should not be treated as list items. 2. Set Elements per group for a fixed group size. Select Divide into random-sized groups when group lengths should vary instead. 3. Click Divide to process the current input. 4. Read Result. Blank lines separate the groups, and the input entries are shuffled in both fixed-size and random-size modes. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Row Numbering - **URL:** https://million.tools/row-numbering/ - **Category:** Format - **Execution:** Client-side (JavaScript) - **Related:** [List Formatting](https://million.tools/list-formatter/) - **Description:** Use row numbering to add line numbers to pasted text. Number a list with a dot, bracket, or space after each number, then copy the numbered rows. ## Parameters - `input_text`: Insert list. - `delimiter`: `Dot` | `Bracket` | `Space` ## Usage & Behavior Row numbering adds sequential numbers to a pasted list without sorting its entries. Choose a dot, bracket, or space after each number to prepare a readable checklist or reference list. Arrange the entries in the desired order before adding number prefixes. 1. Paste one item per row into Insert list. Keep the entries in the order in which you want them numbered. 2. Under Numbering with, select Dot, Bracket, or Space. Dot is selected by default; numbering begins at 1. 3. Click Number to process the current input. 4. Read Result and Number of rows. Each source row receives a number and the selected separator. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Count Rows - **URL:** https://million.tools/count-lines/ - **Category:** Counting - **Execution:** Client-side (JavaScript) - **Related:** [Count Identical Rows](https://million.tools/count-duplicate-rows/) - **Description:** Count rows in pasted text with a line counter. Count lines in text with or without empty rows and read the total without adding line numbers. ## Parameters - `input_text`: Insert text. - `ignore_blank`: Boolean. Ignore empty rows. ## Usage & Behavior Count rows in a pasted block of text without numbering or changing the list. Use this line counter to check the size of a column, with an option to exclude blank and whitespace-only rows. Choose whether blank rows belong in the total before counting. 1. Paste the text or list into Insert text. Separate logical rows with actual line breaks. 2. Keep Ignore empty rows selected to exclude rows that contain no text, including rows made only of spaces or tabs. Clear it to include them. 3. Click Count to process the current input. 4. Read Number of rows below the input. This tool returns a count rather than a separate result list. 5. Use Clear where shown to clear the text fields. It does not reset the option selections. --- # Tool: Move Words to a Column - **URL:** https://million.tools/words-to-column/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Split a List into Columns](https://million.tools/split-list-into-columns/) - **Description:** Move words to a column with a words to lines converter. Split text into rows by whitespace or a custom separator, with optional capitalization. ## Parameters - `delimiter`: Split by. - `input_text`: Insert list. - `capitalize`: Boolean. Begin with uppercase letters. ## Usage & Behavior Move words to a column to turn a passage or separated string into a vertical list. Split on whitespace by default, or supply a custom separator when the entries contain spaces. Use whitespace for individual words or a custom separator for entries containing spaces. 1. Paste the source text into Insert list. It may contain spaces, line breaks, or another consistent separator. 2. Leave Split by empty for whitespace splitting, or enter a literal separator. Clear Begin with uppercase letters when the original case should be preserved. 3. Click Move to process the current input. 4. Read Result for one split item per row and Number of rows for the item count. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: List Formatting - **URL:** https://million.tools/list-formatter/ - **Category:** Format - **Execution:** Client-side (JavaScript) - **Related:** [Compare Two Lists](https://million.tools/compare-two-lists/) - **Description:** Use list formatting to clean list text. Remove punctuation from a list, remove empty rows, or remove double spaces, then review the replacement count. ## Parameters - `input_text`: Insert list. - `needle`: Enter comma-separated symbols. - `clear_blanklines`: Boolean. Remove empty rows. - `clear_noc`: Boolean. Remove commas. - `clear_whitespaces`: Boolean. Remove double spaces. ## Usage & Behavior This list formatting tool removes specified symbols and lets you clean blank rows, commas, and repeated spaces. It helps prepare copied labels and simple text lists for reuse. Choose only the symbol and spacing changes that your list needs. 1. Paste the source into Insert list. Add literal symbols to Enter comma-separated symbols, separating different removal terms with commas. 2. Choose Remove empty rows, Remove commas, and Remove double spaces as needed. Remove empty rows is selected by default. 3. Click Format to process the current input. 4. Read Result and Number of replacements. The counter includes symbol matches and any selected whitespace or blank-row cleanup operations. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Backward Text (Flipping) - **URL:** https://million.tools/flip-text/ - **Category:** Transferring - **Execution:** Client-side (JavaScript) - **Related:** [Column to Delimited List Online](https://million.tools/convert-column-to-list-online/) - **Description:** Create backward text with a text reverser. Reverse characters in each line and compare the backward text with a separate flipped text variant. ## Parameters - `input_text`: Insert text. ## Usage & Behavior Create backward text by reversing the character order within each row. The tool returns both a plain reversed version and a flipped text variant, useful for inspecting short strings or making text effects. Use separate rows for strings that should be reversed independently. 1. Paste the text into Insert text. Use line breaks to separate rows that should be reversed independently. 2. Click Execute to process the current input. 3. Read Backward text for plain character reversal and Flipped text for the reversed version with supported symbol substitutions. 4. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. For abc!, Backward text is !cba and Flipped text is ¡cba. Latin letters are reversed but are not given a complete upside-down alphabet. --- # Tool: Extract URLs or Domain Names - **URL:** https://million.tools/extract-urls/ - **Category:** Domains - **Execution:** Client-side (JavaScript) - **Related:** [Apple and Google Domains](https://million.tools/apple-google-recognized/) - **Description:** Extract URLs from pasted text with a URL extractor. Extract domain names instead of full addresses, keep source order, and copy the resulting list. ## Parameters - `input_text`: Insert text. - `domain_only`: Boolean. Look only for domains. ## Usage & Behavior Extract URLs and website addresses from pasted text, or return just their domain names. Use the URL extractor to turn notes and copied passages into a list of links for review. Paste the surrounding text as well as the addresses; the output isolates the recognized matches. 1. Paste the source material into Insert text. It can contain surrounding prose as well as website addresses. 2. Leave Look only for domains off to retain full matched addresses. Select it to return the hostname without the scheme, path, query, or port. 3. Click Extract to process the current input. 4. Read Result and Number of rows. The extracted entries follow their order in the source; repeated addresses can remain repeated. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Split a List into Columns - **URL:** https://million.tools/split-list-into-columns/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Merge Two Columns](https://million.tools/merge-two-columns/) - **Description:** Split a list into columns with a text to columns tool. Split rows by delimiter or whitespace into up to six outputs, with optional capitalization. ## Parameters - `delimiter`: Split by. - `input_text`: Insert list. - `capitalize`: Boolean. Begin with uppercase letters. ## Usage & Behavior Split a list into columns by separating each source row into fields. This text to columns tool places the first field in one output, the second in another, and continues up to six columns. Keep one record per source row and choose the separator between its fields. 1. Paste the rows into Insert list. Keep each source record on its own line. 2. Leave Split by empty to separate whitespace-delimited items, or enter a literal separator. Clear Begin with uppercase letters if you want to preserve the original capitalization. 3. Click Split to process the current input. 4. Read Result — list 1 through Result — list 6. Each column holds the corresponding field from every input row; unused columns are empty. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Remove Characters from the Beginning or End - **URL:** https://million.tools/remove-characters-from-start-or-end/ - **Category:** Remove - **Execution:** Client-side (JavaScript) - **Related:** [Remove Text Before or After a Symbol](https://million.tools/remove-text-before-or-after-character/) - **Description:** Remove characters from the beginning or end of each row. Use fixed-length text trimming to remove first characters, last characters, or both. ## Parameters - `delete_chars`: Number. Number of characters - `input_text`: Insert list. - `from_begin`: Boolean. Remove characters in the beginning. - `from_end`: Boolean. Remove characters in the end. ## Usage & Behavior Remove characters from the beginning or end of every row using a fixed count. Use it to strip consistent padding or fixed-length prefixes and suffixes from a pasted list. Check that each row has the same unwanted prefix or suffix length before applying a fixed character count. 1. Paste the rows into Insert list and set Number of characters to the count you want removed from each selected end. 2. Select Remove characters in the beginning, Remove characters in the end, or both. The default removes two characters from the beginning. 3. Click Execute to process the current input. 4. Read Result. When both directions are selected, the count applies independently to each end; a row with no characters left becomes empty. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Remove Text Before or After a Symbol - **URL:** https://million.tools/remove-text-before-or-after-character/ - **Category:** Remove - **Execution:** Client-side (JavaScript) - **Related:** [Remove Matching Rows](https://million.tools/remove-matching-rows/) - **Description:** Remove text before or after a symbol in each row. Use character-based text removal to trim text by delimiter while keeping rows without the symbol. ## Parameters - `char`: Symbol. - `input_text`: Insert list. - `before_char`: Boolean. Remove before. - `after_char`: Boolean. Remove after. ## Usage & Behavior Remove text before or after a symbol in every row of a list. This is useful for keeping one part of consistently separated labels or codes without manually editing each entry. Choose the marker and cutting direction that keep the part of each row you need. 1. Paste one entry per row into Insert list. Replace the value in Symbol with the single character that marks the cut point. 2. Select Remove before to keep text after the first occurrence. Select Remove after to keep text before the last occurrence. Enable only the directions you need. 3. Click Execute to process the current input. 4. Read Result and inspect a few rows with repeated symbols. A row without the chosen symbol remains unchanged. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Remove Matching Rows - **URL:** https://million.tools/remove-matching-rows/ - **Category:** Remove - **Execution:** Client-side (JavaScript) - **Related:** [Remove Rows with Stop Words](https://million.tools/remove-stop-words/) - **Description:** Remove matching rows with a list subtraction tool. Subtract one list from another using whole-row matching, case sensitivity, or word-order matching. ## Parameters - `input_text`: Insert list. - `needle`: Insert rows to delete. - `case_sensivity`: Boolean. Case-sensitive. - `ignore_word_order`: Boolean. Ignore word order. ## Usage & Behavior Remove matching rows by comparing a source list with a separate list of values to exclude. This list subtraction tool keeps source rows that do not match any removal value under the selected rules. Use a separate exclusion list to remove complete matching entries from the source. 1. Paste the source into Insert list and put the values to exclude into Insert rows to delete, one complete row per value. 2. Use Case-sensitive when letter case matters. Select Ignore word order when rows with the same words in a different sequence should match. 3. Click Remove matches to process the current input. 4. Read Result and check Rows remaining and Rows removed. Only the retained list is returned; the source remains in the input field. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Remove Rows with Stop Words - **URL:** https://million.tools/remove-stop-words/ - **Category:** Remove - **Execution:** Client-side (JavaScript) - **Related:** [Remove Duplicate Rows](https://million.tools/remove-duplicate-rows/) - **Description:** Remove rows with stop words using a stop word filter. Filter lines by keyword, review matching and nonmatching rows, and choose case-sensitive matching. ## Parameters - `input_text`: Insert list. - `needle`: Stop words, one per line. - `case_sensivity`: Boolean. Case-sensitive. ## Usage & Behavior Remove rows with stop words to separate unwanted entries from the rest of a list. Supply your own terms, then review both the kept rows and the rows containing those terms before using the filtered output. Supply the terms you want to filter and review the two output lists together. 1. Paste the source rows into Insert list. Enter the terms to find in Stop words, one per line. 2. Leave Case-sensitive off to match letter-case variants. Select it when capitalization should change which rows are selected. 3. Click Execute to process the current input. 4. Read Rows without stop words and Rows with stop words. Rows remaining and Rows removed count the two groups; the source text stays available above them. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Remove Duplicate Rows - **URL:** https://million.tools/remove-duplicate-rows/ - **Category:** Remove - **Execution:** Client-side (JavaScript) - **Related:** [Remove Extra Spaces](https://million.tools/remove-extra-spaces/) - **Description:** Remove duplicate rows and deduplicate a list. Remove duplicate lines with case-sensitive or word-order matching, and check how many rows remain. ## Parameters - `input_text`: Insert list. - `case_sensivity`: Boolean. Case-sensitive. - `case_ignore`: Boolean. Ignore word order. ## Usage & Behavior Remove duplicate rows from a pasted list while choosing how capitalization and word order affect matching. The result keeps the last occurrence of each matching group, which matters when repeated entries use different spellings. Decide whether case and word order matter, then check which final occurrences remain. 1. Paste one entry per row into Insert list. Include the complete list whose duplicates you want to remove. 2. Leave Case-sensitive off to group case variants. Turn on Ignore word order when phrases with the same words should count as duplicates. 3. Click Remove duplicates to process the current input. 4. Read Result, Rows remaining, and Rows removed. The surviving rows follow the positions of their last occurrences in the source. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Count Identical Rows - **URL:** https://million.tools/count-duplicate-rows/ - **Category:** Counting - **Execution:** Client-side (JavaScript) - **Related:** [Add All Numbers in a Column](https://million.tools/sum-numbers-in-column/) - **Description:** Count identical rows with a duplicate row counter. Count repeated lines using case-sensitive matching or ignore word order, then copy the row frequencies. ## Parameters - `input_text`: Insert list. - `case_sensivity`: Boolean. Case-sensitive. - `case_ignore`: Boolean. Ignore word order. ## Usage & Behavior Count identical rows to see how often each row value occurs in a pasted list. The duplicate row counter supports case and word-order matching, which helps reveal repeated keyword phrases and labels. Choose the matching rules before interpreting how often each row occurs. 1. Paste the rows to analyze into Insert list. Keep each phrase or value on its own line. 2. Select Case-sensitive to separate capitalization variants. Select Ignore word order to group rows that contain the same whitespace-separated words in a different order. 3. Click Count duplicates to process the current input. 4. Read Row counts as tab-separated row text and its matching count. Distinct original spellings can each appear with the same shared group count. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Merge Two Columns - **URL:** https://million.tools/merge-two-columns/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Compare Two Columns for Matches](https://million.tools/compare-two-columns/) - **Description:** Merge two columns to combine corresponding rows. Join two columns with an optional space, lowercase the second value, and review rows left without a pair. ## Parameters - `input_text`: Insert list. - `needle`: Insert second list. - `lowerize`: Boolean. Transform to lowercase. - `add_space`: Boolean. Add space. ## Usage & Behavior Merge two columns by joining the first row of one list to the first row of the other, then continuing down both lists. It is useful for combining label parts while keeping unmatched entries available for review. Align the two source columns before merging so each pair belongs together. 1. Paste the left-hand values into Insert list and the right-hand values into Insert second list, with one value per row. 2. Select Add space when paired values need a separating space. Transform to lowercase changes the second value in each pair while preserving the first value. 3. Click Merge to process the current input. 4. Read Result for paired rows and Rows remaining without a pair for the excess rows from the longer input. Merged rows and No pair summarize those counts. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Compare Two Columns for Matches - **URL:** https://million.tools/compare-two-columns/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Compare Two Lists](https://million.tools/compare-two-lists/) - **Description:** Compare two columns with a row by row comparison. Find matching rows and column differences, choose case sensitivity, and copy the comparison report. ## Parameters - `input_text`: Insert first list. - `needle`: Insert second list. - `case_sensivity`: Boolean. Case-sensitive. ## Usage & Behavior Compare two columns to check whether entries at the same row position agree. The row by row comparison returns a numbered report with both values and a match status, making it useful for checking aligned exports. Keep related records on the same row in both inputs to make the comparison meaningful. 1. Paste aligned values into Insert first list and Insert second list, one value per row. Keep corresponding records at the same positions. 2. Leave Case-sensitive off to ignore letter case, or select it when capitalization changes should count as differences. 3. Click Compare to process the current input. 4. Read Row comparisons. Each tab-separated record contains the row number, the first value, the second value, and Match or Different. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Compare Two Lists - **URL:** https://million.tools/compare-two-lists/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Combine Lists](https://million.tools/combine-lists/) - **Description:** Compare two lists with a list comparison tool that returns combined unique values and list differences. Choose case-sensitive matching and copy each result. ## Parameters - `input_text`: First list. - `needle`: Second list. - `case_sensivity`: Boolean. Case-sensitive. ## Usage & Behavior Compare two lists to find values unique to either side and obtain a combined set of distinct entries. This list comparison tool helps review changes between exported labels, inventory codes, or keyword lists. Compare membership across both complete lists, then inspect the combined values and the entries unique to each side. 1. Paste one value per line into First list and Second list. Row order does not determine whether a value belongs to both sets. 2. Select Case-sensitive to distinguish uppercase and lowercase values. With it off, values are converted to uppercase for comparison and output. 3. Click Compare to process the current input. 4. Review Only in the first list and Only in the second list. The field labeled Matches in both lists actually contains the combined unique values, including values present in only one input. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: Combine Lists - **URL:** https://million.tools/combine-lists/ - **Category:** Merge and split - **Execution:** Client-side (JavaScript) - **Related:** [Replace Spaces with Line Breaks](https://million.tools/replace-spaces-with-line-breaks/) - **Description:** Combine lists with a list combination generator for two or three inputs. Create keyword combinations, lowercase appended items, and shuffle the output. ## Parameters - `input_text`: Insert first list. - `needle`: Insert second list. - `source_3`: Insert third list (optional). - `lowerize`: Boolean. Transform to lowercase. - `randomize`: Boolean. Shuffle list. ## Usage & Behavior Combine lists to build every pairing from two lists, or every three-part combination when you supply a third. Use it to draft keyword combinations and product phrases from separate columns of words. Build a small phrase set first so you can check the combinations before expanding the source lists. 1. Paste one item per line into Insert first list and Insert second list. Fill Insert third list (optional) only when you need a third part. 2. Leave Transform to lowercase selected to lowercase the second and third list items while keeping the first list unchanged. Select Shuffle list to randomize the output order. 3. Click Combine to process the current input. 4. Read Result and Number of combinations. Each output row joins one item from every supplied list with a space. 5. Click Copy under the output you want to keep. Use Clear where shown to clear the text fields; option selections stay as set. --- # Tool: AES Decryption - **URL:** https://million.tools/aes-decryption/ - **Category:** Cryptography - **Execution:** Client-side (JavaScript) - **Related:** [AES Encryption](https://million.tools/aes-encryption/) - **Description:** Use AES decryption to decrypt AES-256-CBC ciphertext with a matching key. This AES decryptor accepts Base64 or Hex input containing the IV prefix. ## Parameters - `input_text`: Ciphertext. - `aes_file`: File. Encrypted File - `hmac_key`: Key. - `cipher_iv`: IV. - `passphrase`: Passphrase. - `ikm`: Input Key Material. - `salt`: Salt. - `info`: Info. - `iteration`: Number. Iterations - `block-size`: Number. Block Size (r) - `parallelism`: Number. Parallelism (p) - `argon2-memory-size`: Number. Memory Size (KiB) - `argon2-iterations`: Number. Iterations - `argon2-parallelism`: Number. Parallelism - `nonce`: Nonce. - `aad`: Additional Authenticated Data. - `tag-length`: Number. Authentication Tag Length (Bytes) - `tag`: Authentication Tag. - `input-source`: `Text` | `File` - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` - `key-size`: `128 Bits` | `192 Bits` | `256 Bits` - `mode`: `CBC` | `CFB` | `CTR` | `OFB` | `ECB` | `GCM` | `CCM` - `padding`: `Pkcs7` | `Pkcs5` | `Iso97971` | `AnsiX923` | `Iso10126` | `ZeroPadding` | `NoPadding` - `key-type`: `Custom` | `PBKDF2` | `EvpKDF` | `HKDF` | `Scrypt` | `Argon2` - `key-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `iv-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `hash`: `MD5` | `SHA1` | `SHA224` | `SHA256` | `SHA384` | `SHA512` | `RIPEMD160` | `KECCAK512` - `format`: `OpenSSL (Salted__)` | `None` - `ikm-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `salt-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `info-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `custom-iteration`: Boolean. Custom Iteration. - `log-n`: `1,024 (2^10)` | `2,048 (2^11)` | `4,096 (2^12)` | `8,192 (2^13)` | `16,384 (2^14)` | `32,768 (2^15)` | `65,536 (2^16)` | `131,072 (2^17)` | `262,144 (2^18)` | `524,288 (2^19)` | `1,048,576 (2^20)` - `argon2-mode`: `Argon2id` | `Argon2i` | `Argon2d` - `nonce-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `aad-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `append-tag`: Boolean. Authentication Tag Appended to Input. - `tag-input-type`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) - `output_format`: `Hex (Lower Case)` | `Hex (Upper Case)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `IBM866` | `ISO-8859-2` | ... (42 options) ## Usage & Behavior AES decryption recovers text from compatible AES-256-CBC ciphertext using the matching key. This AES decryptor expects a 16-byte IV at the beginning of the decoded input, followed by the encrypted message. It accepts Base64 or Hex representations of that complete value. Use the steps below to recover text from a test ciphertext. 1. Paste the full IV-prefixed value into Ciphertext. Use Input Encoding: Hex for hexadecimal input or Base64 for Base64 input; the UTF-8 default is also treated as Base64 here. 2. Keep Decryption Key & IV enabled. Enter the key in Decryption Key / Password and select its representation with Key Encoding (Search/Type):. 3. Keep Auto / Live on to update the result as you edit. To work manually, turn Auto / Live off and click Run. 4. Read Decrypted Plaintext. A decryption error can indicate the wrong key, encoding, IV prefix, or cipher settings. 5. Click Copy to copy the result. Use Clear where shown, or a field's clear control, to clear the text. --- # Tool: CRC-16 Calculator - **URL:** https://million.tools/crc16/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [CRC32 Calculator](https://million.tools/crc32-calculator/) - **Description:** Calculate CRC-16 checksums from text online. Uses CRC-16/ARC by default, with UTF-8 input, live results, and hex or Base64 output. ## Parameters - `input_text`: Input text. - `model`: `CRC-16/ARC (ARC, CRC-16, CRC-16/LHA, CRC-IBM)` | `CRC-16/CDMA2000` | `CRC-16/CMS` | `CRC-16/DDS-110` | `CRC-16/DECT-R (R-CRC-16)` | `CRC-16/DECT-X (X-CRC-16)` | `CRC-16/DNP` | `CRC-16/EN-13757` | ... (31 options) - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` ## Usage & Behavior This CRC-16 calculator generates a 16-bit checksum from text using CRC-16/ARC by default. Paste a string, choose its input encoding, and read the checksum in lowercase hex, uppercase hex, or Base64. Use the Input text panel on the left to calculate a CRC-16 checksum. The output appears in the CRC-16 Result panel on the right. 1. Enter or paste the characters you want to check into Input text. 2. Choose Input Encoding. Keep UTF-8 for ordinary text unless your source uses another encoding. 3. Under Separator, select Hex (lower), Hex (UPPER), or Base64 to control how the result is displayed. 4. Leave Auto / Live enabled to see the checksum update as you type, or click Run to calculate it manually. 5. Read the value in CRC-16 Result. Click Copy to reuse it, or Clear to remove the input. --- # Tool: CRC32 Calculator - **URL:** https://million.tools/crc32-calculator/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [SHA1 Hash Generator](https://million.tools/sha1/) - **Description:** Use this CRC32 calculator to generate a CRC-32 checksum from text. Choose input encoding, view hex or Base64 output, and copy the result. ## Parameters - `input_text`: Input text. - `model`: `CRC-32/AIXM (CRC-32Q)` | `CRC-32/AUTOSAR` | `CRC-32/BASE91-D (CRC-32D)` | `CRC-32/BZIP2 (CRC-32/AAL5, CRC-32/DECT-B, B-CRC-32)` | `CRC-32/CD-ROM-EDC` | `CRC-32/CKSUM (CKSUM, CRC-32/POSIX)` | `CRC-32/ISCSI (CRC-32/BASE91-C, CRC-32/CASTAGNOLI, CRC-32/INTERLAKEN, CRC-32C, CRC-32/NVME)` | `CRC-32/ISO-HDLC (CRC-32, CRC-32/ADCCP, CRC-32/V-42, CRC-32/XZ, PKZIP)` | `CRC-32/JAMCRC (JAMCRC)` | `CRC-32/MEF` | `CRC-32/MPEG-2` | `CRC-32/XFER (XFER)` - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` ## Usage & Behavior Use this CRC32 calculator to generate a 32-bit cyclic redundancy check from text you type or paste. Select an input encoding, then view the checksum as lowercase hexadecimal, uppercase hexadecimal, or Base64. Enter a string, choose its byte encoding, and calculate a CRC-32 value in the output format your workflow needs: 1. Enter your text. Type or paste it into Input text. Keep spaces and line breaks only if they are part of the data you want to check. 2. Choose the input encoding. Under Input Encoding:, leave UTF-8 selected for ordinary text, or choose the encoding required by your data. 3. Select the output format. Under Separator:, choose Hex (lower), Hex (UPPER), or Base64. 4. Calculate the checksum. With Auto / Live enabled, the result updates as you edit. Otherwise, press Run to calculate it manually. 5. Use or clear the result. Read the checksum in CRC-32 Result, select Copy to copy it, or press Clear to erase the input. --- # Tool: SHA1 Hash Generator - **URL:** https://million.tools/sha1/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [SHA-224 Hash Generator](https://million.tools/sha224/) - **Description:** Generate SHA-1 hashes online with this free SHA1 Hash Generator. Choose UTF-8, UTF-16, Hex or Base64 input, HMAC-SHA1, and Hex or Base64 output. ## Parameters - `input_text`: Input text. - `hmac_key`: HMAC Secret Key. - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` - `hmac_enabled`: Boolean. Enable HMAC-SHA1. - `hmac_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) ## Usage & Behavior Generate SHA-1 hashes from text for legacy checksum comparisons or testing older integrations. The tool also offers Auto / Live updates, multiple input encodings, and an optional HMAC-SHA1 mode. Use this online SHA1 calculator to hash text as entered or to interpret an encoded byte sequence before hashing. The steps below match the controls shown in the tool. 1. Type or paste your content in the Input text editor. 2. Open Input Encoding and choose the representation of your input, such as UTF-8, UTF-16, Hex, or Base64 where available. Leave UTF-8 selected for ordinary text. 3. Keep Auto / Live enabled to update the hash while editing, or switch it off and press Run to calculate manually. 4. Under Separator, select Hex (lower), Hex (UPPER), or Base64. Read the value in SHA-1 Hash Result, then use Copy to copy it or Clear to reset your input. --- # Tool: SHA-224 Hash Generator - **URL:** https://million.tools/sha224/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [SHA-512 Hash Generator](https://million.tools/sha512-hash-generator/) - **Description:** Use this SHA-224 hash generator to calculate a SHA224 checksum from text, Hex, or Base64. Choose the output format or calculate HMAC-SHA224. ## Parameters - `input_text`: Input text. - `hmac_key`: HMAC Secret Key. - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` - `hmac_enabled`: Boolean. Enable HMAC-SHA224. - `hmac_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) ## Usage & Behavior This SHA-224 hash generator turns text or encoded bytes into a 224-bit digest. Compare a SHA224 checksum from an application, inspect a test message, or calculate a keyed HMAC-SHA224 result. Start with a known message so you can check the encoding and result format before comparing your own data. --- # Tool: SHA-512 Hash Generator - **URL:** https://million.tools/sha512-hash-generator/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [Keccak-256 Hash Generator](https://million.tools/keccak-256/) - **Description:** Generate a SHA-512 hash online from text. Choose UTF-8 input, lowercase or uppercase hex, or Base64 output, and create HMAC-SHA512 signatures. ## Parameters - `input_text`: Input text. - `hmac_key`: HMAC Secret Key. - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` - `hmac_enabled`: Boolean. Enable HMAC-SHA512. - `hmac_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) ## Usage & Behavior Use this online SHA-512 calculator to reproduce hashes, check text-based digests, or test how an application handles different input encodings. A SHA-512 hash is calculated from the exact bytes of your input. Start with ordinary text and leave Enable HMAC-SHA512 off for a standard, unkeyed digest. 1. Type or paste a word, string, or multiline text into Input text. Spaces and line breaks count as part of the input. 2. Under Input Encoding, keep UTF-8 for regular text, or change the selector if your source uses a different supported encoding. 3. Under Separator, select Hex (lower), Hex (UPPER), or Base64 for the result format. 4. Use Auto / Live to update the digest as the input changes, or press Run to calculate it on demand. 5. Read the value in SHA-512 Hash Result. Press Copy to copy the digest, or Clear to clear the form. --- # Tool: Keccak-256 Hash Generator - **URL:** https://million.tools/keccak-256/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [CRC Hash Generator](https://million.tools/crc-calculator/) - **Description:** Generate a Keccak-256 hash from text online. Choose UTF-8, Hex, or Base64 input, use live hashing or HMAC, and copy the digest in Hex or Base64. ## Parameters - `input_text`: Input text. - `hmac_key`: HMAC Secret Key. - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` - `hmac_enabled`: Boolean. Enable HMAC-KECCAK-256. - `hmac_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) ## Usage & Behavior The Keccak-256 Hash Generator calculates a 256-bit hash from text or encoded bytes. Select UTF-8, Hex, or Base64 input, then copy the digest as hexadecimal or Base64 for development, testing, or data checks. Use this online Keccak-256 calculator to hash a text string or a sequence of bytes. The result is always a 256-bit digest; the output controls only change how that digest is displayed. 1. Type or paste a string into the Input text editor. 2. Choose Input Encoding. Keep UTF-8 for ordinary text, or select Hex or Base64 when your input represents encoded bytes. 3. Under Separator, select Hex (lower), Hex (UPPER), or Base64 for the Keccak-256 Hash Result. These choices change the displayed format, not the underlying digest. 4. Leave Auto / Live enabled for live updates, or use Run to calculate the hash on demand. 5. Read the digest in Keccak-256 Hash Result. Select Copy to copy it, or Clear to remove the input and reset the working area. --- # Tool: CRC Hash Generator - **URL:** https://million.tools/crc-calculator/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [SHA256 Hash Generator](https://million.tools/sha256/) - **Description:** Calculate a CRC checksum from text with this online CRC calculator. Choose UTF-8 input and copy results in lowercase hex, uppercase hex, or Base64. ## Parameters - `input_text`: Input text. - `model`: `CRC-32/ISO-HDLC (CRC-32, CRC-32/ADCCP, CRC-32/V-42, CRC-32/XZ, PKZIP)` | `Custom` | `CRC-7/MMC (CRC-7)` | `CRC-8/SMBUS (CRC-8)` | `CRC-10/ATM (CRC-10, CRC-10/I-610)` | `CRC-11/FLEXRAY (CRC-11)` | `CRC-15/CAN (CRC-15)` | `CRC-16/ARC (ARC, CRC-16, CRC-16/LHA, CRC-IBM)` | ... (123 options) - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` ## Usage & Behavior This CRC calculator computes a cyclic redundancy check value from any text string you enter. Choose the character encoding, switch between hexadecimal and Base64 output formats, and copy the checksum for quick payload verification or debugging. Generate a CRC checksum from your text in a few steps using the input panel on the left and the CRC Result panel on the right: 1. Type or paste your string into Input text. To test the tool with a standard check value, enter 123456789. 2. Select the Input Encoding. UTF-8 is selected by default and works for standard ASCII and multi-byte Unicode text. 3. Choose your desired output representation under Separator: Hex (lower), Hex (UPPER), or Base64. 4. Click Run to compute the checksum manually, or rely on the real-time result in the CRC Result box. 5. Click Copy to copy the checksum to your clipboard, or Clear to reset the input field. --- # Tool: SHA256 Hash Generator - **URL:** https://million.tools/sha256/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [MD5 Hash Generator Online](https://million.tools/md5/) - **Description:** Generate SHA256 hashes online for free. Calculate SHA-256 from text with UTF-8, Hex or Base64 input, and create HMAC-SHA256 hashes using a secret key. ## Parameters - `input_text`: Input text. - `hmac_key`: HMAC Secret Key. - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` - `hmac_enabled`: Boolean. Enable HMAC. - `hmac_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) ## Usage & Behavior Generate a SHA256 hash online from text or encoded data. Choose your input encoding, calculate HMAC-SHA256 when needed, and copy the result in Hex or Base64 using this free SHA-256 calculator. Use this online SHA256 hash generator to convert plain text, strings, or encoded bytes into a 256-bit digest. It supports multiple input encodings, Hex and Base64 output, and live SHA-256 calculation. --- # Tool: MD5 Hash Generator Online - **URL:** https://million.tools/md5/ - **Category:** Hash - **Execution:** Client-side (JavaScript) - **Related:** [Argon2 Hash Generator](https://million.tools/argon2/) - **Description:** Generate an MD5 hash from text online. Choose UTF-8, Hex or Base64 input, calculate HMAC-MD5, and copy your hash instantly. Free MD5 calculator. ## Parameters - `input_text`: Input text. - `hmac_key`: HMAC Secret Key. - `input_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) - `output_format`: `Hex (lower)` | `Hex (UPPER)` | `Base64` - `hmac_enabled`: Boolean. Enable HMAC. - `hmac_encoding`: `Hex` | `Hex (Ignore Non-Hex Characters)` | `Base64` | `UTF-8` | `UTF-16LE` | `UTF-16BE` | `Windows-1251 (Cyrillic)` | `Windows-1252 (Latin 1)` | ... (42 options) ## Usage & Behavior Generate an MD5 hash from any text or string in seconds. Choose your input encoding, calculate HMAC-MD5, and copy the result in Hex or Base64 with this free online MD5 calculator. Use this online MD5 hash generator to convert text, strings, or encoded data into an MD5 hash. The tool supports multiple input encodings, different hash output formats, and real-time MD5 calculation. --- # Tool: YouTube Thumbnail Downloader - **URL:** https://million.tools/youtube-thumbnail-downloader/ - **Category:** Media Tools - **Execution:** Client-side (JavaScript) - **Description:** Download YouTube thumbnails in HD for free. Paste a video URL or ID to grab preview images in multiple resolutions, save the JPG, or copy the thumbnail link. ## Parameters - `input_text`: YouTube Video URL or ID. - `thumbnail_size`: `Max Resolution (1080p / 720p)` | `Standard (640x480)` | `High Quality (480x360)` | `Medium Quality (320x180)` ## Usage & Behavior Download YouTube thumbnails in HD for free. Simply paste a video URL or ID to preview, save, or copy thumbnail images in different resolutions. No registration required. The YouTube Thumbnail Downloader lets you download YouTube video thumbnails in different resolutions, including HD. Paste a video URL or ID, select the image size, and get a direct link to the thumbnail. Use this free YouTube thumbnail grabber to save video cover images for websites, articles, presentations, or personal collections. No registration or software installation is needed. Paste your video link into the YouTube Video URL or ID field. The tool accepts: - Full URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ - Short URL: https://youtu.be/dQw4w9WgXcQ - Video ID: dQw4w9WgXcQ Copy the link from your browser or use YouTube's Share button. You can also enter just the video ID to extract a YouTube thumbnail. --- # Tool: WordPress Password Hash generator - **URL:** https://million.tools/wordpress-password-to-hash-converter/ - **Category:** Generators - **Execution:** Client-side (JavaScript) - **Related:** [Random IP Address Generator](https://million.tools/online-ip-generator/) - **Description:** Generate WordPress password hashes online using bcrypt, phpass, or MD5. Free WordPress Password to Hash Converter for database resets and all WP versions. ## Parameters - `input_text`: Password. - `wp_version`: `6.8 or newer` | `4.4 - 6.7` | `2.5 - 4.3` | `0.71 - 2.4 (MD5)` ## Usage & Behavior Need to reset a WordPress password directly in the database? This tool converts plain text into a valid WordPress password hash. Just type your new password, copy the generated string, and update the user_pass column in wp_users. Our free online WordPress Password Hash Generator converts plain-text passwords into WordPress-compatible hashes using bcrypt, phpass, or MD5. It is particularly useful when you need to reset a WordPress password directly in the database or generate a password hash for a specific WordPress version. --- # Tool: Apple and Google Domains - **URL:** https://million.tools/apple-google-recognized/ - **Category:** Domains - **Execution:** Client-side (JavaScript) - **Related:** [Extract URLs or Domain Names](https://million.tools/extract-urls/) - **Description:** This list lets you check and compare domain support in Apple devices and Google ecosystems ## Parameters - `search-tld`: Search TLD by extension or keyword. - `tld_filter`: `Total TLDs` | `Apple Linkified` | `Google Linkified` ## Usage & Behavior This list is designed to test and compare support for top-level domains (TLDs) across the Apple and Google ecosystems. - Apple: iMessage, Notes, Mail, and other native apps - Google: Google Docs, Sheets, Slides, and related Workspace tools --- # Tool: Random IP Address Generator - **URL:** https://million.tools/online-ip-generator/ - **Category:** Generators - **Execution:** Client-side (JavaScript) - **Related:** [WordPress Password Hash generator](https://million.tools/wordpress-password-to-hash-converter/) - **Description:** Quickly generate random IP addresses for testing and development purposes with our free online tool. ## Parameters - `count`: Number. How many IPs? (max: 5000) - `separator`: `New Line` | `Space` | `Comma` | `Semicolon` | `Dot (Period)` - `ip_address_types`: `IPv4` | `IPv6 (short)` | `IPv6 (expanded)` | `Loopback IP` | `Multicast IP` | `Broadcast IP` | `Anycast IP` ## Usage & Behavior The tool generates random IP addresses for testing and development purposes. It allows users to specify the number of IPs needed and provides them instantly. Need a realistic list of IP addresses to test a firewall rule, populate a staging database, or simulate server traffic logs? Our free Online IP Generator lets you generate random IPv4 and IPv6 addresses in a single click—up to 5,000 addresses at once, right in your browser. Whether you need a simple random IP address generator for standard IPv4 strings, a bulk IP generator for load testing, or specialized network addresses like Loopback, Multicast, Broadcast, and Anycast, you can customize both the IP types and the exact delimiter your project requires. --- # Tool: Online Text Line Shuffler - **URL:** https://million.tools/randomize-text-online/ - **Category:** Sort and Mix - **Execution:** Client-side (JavaScript) - **Related:** [Reverse List Online](https://million.tools/reverse-list-tool/) - **Description:** Use our free online tool to shuffle text lines instantly. Perfect for creating randomized lists, shuffling sentences, or mixing data for testing purposes. ## Parameters - `input_text`: Insert list. - `input_separator`: `New Line` | `Space` | `Comma` | `Semicolon` | `Dot (Period)` - `output_separator`: `New Line` | `Space` | `Comma` | `Semicolon` | `Dot (Period)` ## Usage & Behavior Input your text, and the tool will instantly randomize the order of your lines. Ideal for generating randomized lists, shuffling sentences for creative writing, or preparing data for testing. The user-friendly interface ensures a seamless experience, making text shuffling quick and easy. When you need to randomize text online, this free text line shuffler takes any list of items and rearranges them in a completely random order. Whether you are using it as a list randomizer to pick a giveaway winner, mixing up quiz questions, or scrambling a set of SEO keywords, you can shuffle lines of text in a couple of clicks without messing with complex spreadsheet formulas. --- # Tool: Column to Delimited List Online - **URL:** https://million.tools/convert-column-to-list-online/ - **Category:** Transferring - **Execution:** Client-side (JavaScript) - **Related:** [Transform Text to Uppercase](https://million.tools/convert-to-uppercase/) - **Description:** Convert a column of text into a list separated by commas, spaces, semicolons, or any custom delimiter. Fast, simple, and efficient online tool for text transformation. ## Parameters - `input_text`: Insert list. - `output_separator`: `Comma` | `Space` | `Semicolon` | `Dot (Period)` - `in_reverse`: Boolean. In reverse? ## Usage & Behavior Easily convert a column of text into a formatted list with your preferred separator, whether it's a comma, space, semicolon, or any custom character. This online tool quickly processes your input, making it ideal for data formatting, CSV preparation, and text manipulation. Just paste your text, choose your delimiter, and get an instant result. Need to convert a column to a list online without manually deleting line breaks and typing commas one by one? Our free Column to Delimited List Converter takes any vertical column of words, numbers, emails, or IDs and transforms it into a clean, single-line string separated by your chosen character. Whether you want to convert an Excel column to a comma-separated list (CSV), turn a vertical list into a horizontal string, or replace new lines with commas for a database query, everything happens instantly right in your browser. --- # Tool: Reverse List Online - **URL:** https://million.tools/reverse-list-tool/ - **Category:** Sort and Mix - **Execution:** Client-side (JavaScript) - **Related:** [Alphabetize List Online](https://million.tools/sort-list-alphabetically/) - **Description:** ⚙️ Easily reverse any list of text lines online in just one click! Paste your list, press the button, and get the order flipped instantly. A fast, free, and efficient tool for text processing and data organization. ## Parameters - `input_text`: Insert list. - `input_separator`: `New Line` | `Space` | `Comma` | `Semicolon` | `Dot (Period)` - `output_separator`: `New Line` | `Space` | `Comma` | `Semicolon` | `Dot (Period)` ## Usage & Behavior This online tool quickly reverses the order ( sort desc ) of any text list. Simply paste your list into the box, click the button, and the sequence will be flipped instantly. Ideal for text processing, sorting data, and organizing information. Need to reverse a list online without manually moving lines one by one? Our free list reverser takes any sequence of words, numbers, or lines and flips their order in a single click—moving the last item to the top and the first item to the bottom. Whether you need to reverse line order in a document, invert a chronological log (sort desc), or reorganize comma-separated data, everything happens right in your browser. Beyond simply flipping sequences, this text list organizer also works as a quick delimiter converter, letting you change how your items are separated while reversing them. --- # Tool: Alphabetize List Online - **URL:** https://million.tools/sort-list-alphabetically/ - **Category:** Sort and Mix - **Execution:** Client-side (JavaScript) - **Related:** [Online Text Line Shuffler](https://million.tools/randomize-text-online/) - **Description:** Quickly sort and arrange text rows alphabetically, from A to Z or Z to A. A simple tool to organize your lists and streamline your work with ease. ## Parameters - `input_text`: Insert list. - `input_separator`: `New Line` | `Space` | `Comma` | `Semicolon` | `Dot (Period)` - `output_separator`: `New Line` | `Space` | `Comma` | `Semicolon` | `Dot (Period)` - `in_reverse`: Boolean. In reverse? ## Usage & Behavior This free online alphabetize list tool sorts words, names, and text items in alphabetical order (A to Z or Z to A) based on the specified delimiters. It produces a result with delimiters that can be selected in the options. Use this alphabetical list sorter to quickly organize text lists without manually rearranging items. Need to quickly put a messy list in alphabetical order? Paste your text into the Insert list box on the left, pick how your items are separated, and hit Run. Your sorted list will show up instantly in the Result box on the right, ready to copy. This makes it easy to alphabetize a list online in just a few clicks. By default, everything sorts from A to Z (ascending alphabetical order). If you need the opposite order (Z to A), just check the In reverse? box before running the tool. This option lets you sort a list in reverse alphabetical order.