OpenAPI & YAML Tools

Convert between YAML and JSON, or render readable API documentation from OpenAPI specifications.

Output Data

JSON Formatter / Minifier

Format, minify, and validate JSON data locally.

Input Raw JSON
Output Result
Output will appear here...

Regex Tester

Validate regular expressions and view matched groups in real-time.

Regex Examples

  • Email: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b
  • URL: https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
  • Date (YYYY-MM-DD): ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

Flags Definition

  • g (Global): Don't return after first match. Search for all matches.
  • i (Insensitive): Case insensitive match.
  • m (Multiline): ^ and $ match start/end of line, not just string.
Test String
Match Results & Groups
No matches yet

Cryptographic Operations

Perform symmetric and asymmetric encryption and signatures locally in the browser.

Input Payload (Plaintext or Base64 Cipher)
Result Output
Result will appear here...

Key & Keypair Generator

Generate secure symmetric keys or asymmetric public/private keypairs locally.

Generator Settings
Generated Output
Click Generate to create secure cryptographic keys.

URL Encoder / Decoder

Safely encode or decode URL components locally.

Source Input
Output Result

Base64 Converter

Encode plain text or binary files to Base64, or decode them back.

Source Input

Drag & drop file here or click to browse

Output Result

Hash / Digest Generator

Calculate SHA-256, SHA-384, SHA-512, or SHA-1 hashes of your input locally.

Input Content
Calculated Digests

JWT Decoder

Decode and parse JSON Web Tokens locally in the browser.

JSON Web Token
Decoded Segment Data
Header
JWT Header JSON
Payload
JWT Payload JSON

IP CIDR Calculator & Subnet Planner

Calculate subnet details, host counts, wildcard masks, and view visual binary breakdowns of network partition spaces.

Calculator Configuration
/24
Calculated Network Details
CIDR Notation: --
Network Address: --
Usable IP Range: --
Broadcast Address: --
Total Usable Hosts: --
Wildcard Mask: --
IP Class (Legacy): --

Binary Breakdown

The network bits are colored in green, and the host bits are colored in pink/orange.

IP Address: --
Subnet Mask: --
Network Address: --
Broadcast Address: --

How CIDR Subnet Calculation Works

  1. Binary Conversion: IP addresses consist of 32 bits divided into 4 groups of 8 (octets). For example, 192.168.1.1 translates to 11000000.10101000.00000001.00000001.
  2. Subnet Masking (CIDR Prefix): The prefix length (e.g. /24) represents the number of contiguous leading bits set to 1 in the subnet mask. A prefix of /24 means 24 ones followed by 8 zeros: 11111111.11111111.11111111.00000000 (or 255.255.255.0).
  3. Calculating Network Address: Performed by executing a bitwise logical AND operation between the IP address and the Subnet Mask. Only bits where both the IP and the mask are 1 remain set:
    Network Address = IP & Subnet Mask
  4. Calculating Broadcast Address: Computed by combining the Network Address with the inverted (bitwise NOT) Subnet Mask using a bitwise logical OR. This sets all host-portion bits to 1:
    Broadcast Address = Network Address | ~Subnet Mask
  5. Usable Hosts: Calculated as $2^{\text{host bits}} - 2$. We subtract 2 because the first IP address is reserved for the Network Address and the last IP address is reserved for the Broadcast Address.

Character Encodings & SMS Sub-Alphabet Translator

Encode text to byte representations or decode raw bytes back to text. Supports standard web and telecom-specific GSM 03.38 protocols.

Text Input
Encoded Bytes (Hex Array)
Character Count: 0
Payload Size: 0 bytes
Packing Compression Ratio: 0%

Raw Binary Bitstream

--

GSM 03.38 Encodings & SMS Packing

  • GSM 7-Bit Default Alphabet: Designed for SMS text message transfer. Standard characters map to 7-bit indexes (0-127). E.g., @ is 0x00, and A is 0x41.
  • Escape Table Extension: Certain characters (like , [, ], {, }, \|, ^, ~) do not fit in the basic 7-bit table. They are prefixed with an escape byte 0x1B (27), making them consume 14 bits (2 septets) instead of 7 bits.
  • Septet-to-Octet Packing (Compression): In SMS PDU payloads, to transmit maximum content under the 140-byte limit, 7-bit septets are packed tightly into 8-bit octets:
    • The first character's 7 bits occupy bits 0-6 of the first byte.
    • The second character's lowest 1 bit is placed in bit 7 of the first byte, and its remaining 6 bits go into bits 0-5 of the second byte, and so on.
    • This compression packs exactly 8 characters into 7 bytes (a 12.5% reduction in size), enabling the standard 160-character limit inside 140 bytes of data!
  • GSM 8-Bit Data: Primarily used for binary payloads (like smart card updates, port-directed SMS, or WAP pushes). It treats characters as standard 8-bit bytes (usually matching ISO-8859-1).

BER-TLV Parser

Parse and analyze ASN.1 Basic Encoding Rules Tag-Length-Value (BER-TLV) hex data commonly used in smart cards, SIMs, and eSIM (eUICC) profiles.

HEX Data Input
Decoded TLV Tree View
No parsed tree yet. Enter hex bytes and click "Parse BER-TLV".

BER-TLV Structure Reference

BER-TLV (Basic Encoding Rules - Tag-Length-Value) is a key format specified in ISO/IEC 7816-4 for smart cards and GSMA SGP.22 for eSIM. Each data element is encoded as follows:

  • Tag Field: Identifies the data element class and type.
    Class (Bits 8-7 of first byte): 00 Universal, 01 Application, 10 Context-Specific (very common in eSIM), 11 Private.
    P/C Flag (Bit 6 of first byte): 0 Primitive (leaf node with data), 1 Constructed (contains nested TLV nodes).
    Tag Number (Bits 5-1 of first byte): If bits 5-1 are all 1 (value 0x1F), the tag is multi-byte. Subsequent bytes specify the tag number, where Bit 8 of each subsequent byte acts as a continuation flag (1 = more bytes follow, 0 = final byte).
  • Length Field: Defines the size of the Value field.
    Short Form: One byte (Bit 8 is 0). Value range: 0 to 127 (0x00 to 0x7F).
    Long Form: Multiple bytes. The first byte has Bit 8 set to 1, and bits 7-1 specify the number of subsequent bytes carrying the actual length value (e.g. 0x81 0x2A indicates a length of 42).
  • Value Field: Contains the payload bytes. If the tag is Constructed, the value contains nested TLV objects recursively.

Send a Message