Input
Type, paste, or drop a file anywhere on screen. Nothing leaves the page and nothing is stored.
{{ fileWarning }}
{{ NO_SUBTLE }}
{{ inputSize.toLocaleString() }} bytes in Β· {{ text.length.toLocaleString() }} characters Β· too large for live
{{ encodeError }}
Base64
{{ b64.length.toLocaleString() }} characters Β· {{ fmtBytes(b64.length) }}
Nothing encoded yet β the settings above are ready for when there is.
{{ b64 }}
-
{{ p.size }}
{{ p.text }}
{{ p.preview }}
- {{ unlistedParts.toLocaleString() }} more parts are not listed β they are still in {{ ZIP_NAME }}.
Commands
These follow the settings above. Click a line to copy it.
Base64
Paste it, or drop the parts β or the zip holding them β anywhere on screen. Files are merged in name order.
Merged {{ decEntryCount }}: Β· {{ g.zip }} > {{ summarize(g.names) }}
{{ decCompact.length.toLocaleString() }} base64 characters Β· too large for live
{{ decError }}
Decoded
{{ decResult.bytes.length.toLocaleString() }} bytes Β· {{ decEncrypted ? 'encrypted' : decResult.text === null ? 'binary' : 'valid UTF-8' }}
Starts with openssl's Salted__ header, so this is ciphertext. The passphrase did not travel with it.
{{ decCryptError }}
{{ NO_SUBTLE }}
{{ decResult.text }}
Not text β first {{ Math.min(64, decResult.bytes.length) }} bytes:
{{ hexPreview }}
Commands
The shell equivalent, if the parts landed on a machine without a browser.