-
Notifications
You must be signed in to change notification settings - Fork 493
Expand file tree
/
Copy pathbase64_decode_file.html
More file actions
100 lines (95 loc) · 21.9 KB
/
Copy pathbase64_decode_file.html
File metadata and controls
100 lines (95 loc) · 21.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="content-language" content="en"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Decode Base64 to File - Online Tools</title><base href="/online-tools/"><meta name="keywords" content="Base64,online,decode,download,file,custom alphabet"><meta name="author" content="emn178"><meta name="copyright" content="emn178"><meta name="description" content="Decode standard, URL-safe, unpadded, IMAP-style, or custom-alphabet Base64 data into a downloadable file online."><meta property="og:type" content="website"><meta property="og:title" content="Decode Base64 to File"><meta property="og:url" content="https://emn178.github.io/online-tools/base64_decode_file.html"><meta property="og:site_name" content="Online Tools"><meta property="og:description" content="Decode standard, URL-safe, unpadded, IMAP-style, or custom-alphabet Base64 data into a downloadable file online."><meta property="og:locale" content="en"><meta property="og:image" content="https://emn178.github.io/online-tools/images/logo.svg"><meta property="article:author" content="emn178"><meta property="article:tag" content="Base64,online,decode,download,file,custom alphabet"><meta property="twitter:card" content="summary"><meta property="twitter:image" content="https://emn178.github.io/online-tools/images/logo.svg"><link rel="canonical" href="https://emn178.github.io/online-tools/base64_decode_file.html"><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebApplication","name":"Decode Base64 to File","description":"Decode standard, URL-safe, unpadded, IMAP-style, or custom-alphabet Base64 data into a downloadable file online.","url":"https://emn178.github.io/online-tools/base64_decode_file.html","applicationCategory":"UtilitiesApplication","operatingSystem":"Any","isAccessibleForFree":true,"offers":{"@type":"Offer","price":0,"priceCurrency":"USD"}}</script><link rel="icon" href="images/logo.svg"><script>var delayScripts = [];
var waitLoadCount = 0;
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
if (location.hostname != 'localhost') {
gtag('js', new Date());
gtag('config', 'G-WT6N5R6W6Z');
(function () {
var gaUrl = 'https://www.googletagmanager.com/gtag/js?id=G-WT6N5R6W6Z';
function initGTMOnEvent(e) {
document.removeEventListener(event.type, initGTMOnEvent);
initGTM();
}
function initGTM() {
if (window.gtmDidInit) {
return;
}
window.gtmDidInit = true;
var script = document.createElement('script');
script.async = true;
script.src = gaUrl;
document.head.appendChild(script);
}
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', function() {
setTimeout(initGTM, 3500);
});
document.addEventListener('scroll', initGTMOnEvent);
document.addEventListener('mousemove', initGTMOnEvent);
document.addEventListener('touchstart', initGTMOnEvent);
} else {
delayScripts.push({
src: gaUrl
});
}
})();
}
if (localStorage.getItem('DARK') === '1') {
document.documentElement.classList.add('dark-theme')
}
</script><link rel="stylesheet" href="css/style.css?v=36"></head><body><div id="app"><div id="sidebar"><div class="mask"></div><div class="container"><header><a href="./"><img src="images/logo.svg" width="18" height="18" alt="Logo"><h2>Online Tools</h2></a><div class="toolbar"><button class="icon theme"><img class="light" src="images/light.svg" alt="Dark mode" title="Dark mode"><img class="dark" src="images/dark.svg" alt="Dark mode" title="Dark mode"></button></div></header><div class="section"><h3>Hash</h3><details><summary>CRC</summary><nav><ol><li><a href="crc/">CRC</a></li><li><a href="crc16/">CRC-16</a></li><li><a href="crc32/">CRC-32</a></li></ol></nav></details><details><summary>MD</summary><nav><ol><li><a href="md2.html">MD2</a></li><li><a href="md2_file_hash.html">MD2 File</a></li><li><a href="md4.html">MD4</a></li><li><a href="md4_file_hash.html">MD4 File</a></li><li><a href="md5.html">MD5</a></li><li><a href="md5_checksum.html">MD5 File</a></li></ol></nav></details><details><summary>SHA1</summary><nav><ol><li><a href="sha1.html">SHA1</a></li><li><a href="sha1_checksum.html">SHA1 File</a></li></ol></nav></details><details><summary>SHA2</summary><nav><ol><li><a href="sha224.html">SHA224</a></li><li><a href="sha224_checksum.html">SHA224 File</a></li><li><a href="sha256.html">SHA256</a></li><li><a href="sha256_checksum.html">SHA256 File</a></li><li><a href="double_sha256.html">Double SHA256</a></li></ol></nav></details><details><summary>SHA2-512</summary><nav><ol><li><a href="sha384.html">SHA384</a></li><li><a href="sha384_file_hash.html">SHA384 File</a></li><li><a href="sha512.html">SHA512</a></li><li><a href="sha512_file_hash.html">SHA512 File</a></li><li><a href="sha512_224.html">SHA512/224</a></li><li><a href="sha512_224_file_hash.html">SHA512/224 File</a></li><li><a href="sha512_256.html">SHA512/256</a></li><li><a href="sha512_256_file_hash.html">SHA512/256 File</a></li></ol></nav></details><details><summary>SHA3</summary><nav><ol><li><a href="sha3_224.html">SHA3-224</a></li><li><a href="sha3_224_checksum.html">SHA3-224 File</a></li><li><a href="sha3_256.html">SHA3-256</a></li><li><a href="sha3_256_checksum.html">SHA3-256 File</a></li><li><a href="sha3_384.html">SHA3-384</a></li><li><a href="sha3_384_checksum.html">SHA3-384 File</a></li><li><a href="sha3_512.html">SHA3-512</a></li><li><a href="sha3_512_checksum.html">SHA3-512 File</a></li></ol></nav></details><details><summary>Keccak</summary><nav><ol><li><a href="keccak_224.html">Keccak-224</a></li><li><a href="keccak_224_checksum.html">Keccak-224 File</a></li><li><a href="keccak_256.html">Keccak-256</a></li><li><a href="keccak_256_checksum.html">Keccak-256 File</a></li><li><a href="keccak_384.html">Keccak-384</a></li><li><a href="keccak_384_checksum.html">Keccak-384 File</a></li><li><a href="keccak_512.html">Keccak-512</a></li><li><a href="keccak_512_checksum.html">Keccak-512 File</a></li></ol></nav></details><details><summary>SHAKE</summary><nav><ol><li><a href="shake128/">SHAKE128</a></li><li><a href="shake128/file/">SHAKE128 File</a></li><li><a href="shake256/">SHAKE256</a></li><li><a href="shake256/file/">SHAKE256 File</a></li></ol></nav></details><details><summary>cSHAKE</summary><nav><ol><li><a href="cshake128/">cSHAKE128</a></li><li><a href="cshake128/file/">cSHAKE128 File</a></li><li><a href="cshake256/">cSHAKE256</a></li><li><a href="cshake256/file/">cSHAKE256 File</a></li></ol></nav></details><details><summary>KMAC</summary><nav><ol><li><a href="kmac128/">KMAC128</a></li><li><a href="kmac128/file/">KMAC128 File</a></li><li><a href="kmac256/">KMAC256</a></li><li><a href="kmac256/file/">KMAC256 File</a></li><li><a href="kmacxof128/">KMACXOF128</a></li><li><a href="kmacxof256/">KMACXOF256</a></li></ol></nav></details><details><summary>TupleHash</summary><nav><ol><li><a href="tuplehash128/">TupleHash128</a></li><li><a href="tuplehash256/">TupleHash256</a></li><li><a href="tuplehashxof128/">TupleHashXOF128</a></li><li><a href="tuplehashxof256/">TupleHashXOF256</a></li></ol></nav></details><details><summary>RIPEMD</summary><nav><ol><li><a href="ripemd-128/">RIPEMD-128</a></li><li><a href="ripemd-128/file/">RIPEMD-128 File</a></li><li><a href="ripemd-160/">RIPEMD-160</a></li><li><a href="ripemd-160/file/">RIPEMD-160 File</a></li><li><a href="ripemd-256/">RIPEMD-256</a></li><li><a href="ripemd-256/file/">RIPEMD-256 File</a></li><li><a href="ripemd-320/">RIPEMD-320</a></li><li><a href="ripemd-320/file/">RIPEMD-320 File</a></li></ol></nav></details><details><summary>BLAKE</summary><nav><ol><li><a href="blake2b/">BLAKE2b</a></li><li><a href="blake2b/file/">BLAKE2b File</a></li><li><a href="blake2s/">BLAKE2s</a></li><li><a href="blake2s/file/">BLAKE2s File</a></li><li><a href="blake3/">BLAKE3</a></li><li><a href="blake3/file/">BLAKE3 File</a></li></ol></nav></details></div><div class="section"><h3>Cryptography</h3><details><summary>AES</summary><nav><ol><li><a href="aes/encrypt/">Encryption</a></li><li><a href="aes/decrypt/">Decryption</a></li></ol></nav></details><details><summary>DES</summary><nav><ol><li><a href="des/encrypt/">Encryption</a></li><li><a href="des/decrypt/">Decryption</a></li></ol></nav></details><details><summary>Triple DES</summary><nav><ol><li><a href="triple-des/encrypt/">Encryption</a></li><li><a href="triple-des/decrypt/">Decryption</a></li></ol></nav></details><details><summary>RC4</summary><nav><ol><li><a href="rc4/encrypt/">Encryption</a></li><li><a href="rc4/decrypt/">Decryption</a></li></ol></nav></details><details><summary>XXTEA</summary><nav><ol><li><a href="xxtea/encrypt/">Encryption</a></li><li><a href="xxtea/decrypt/">Decryption</a></li></ol></nav></details><details><summary>SPECK</summary><nav><ol><li><a href="speck/encrypt/">Encryption</a></li><li><a href="speck/decrypt/">Decryption</a></li></ol></nav></details><details><summary>ECDSA</summary><nav><ol><li><a href="ecdsa/key-generator/">Key Generator</a></li><li><a href="ecdsa/sign/">Sign Message</a></li><li><a href="ecdsa/verify/">Verify Signature</a></li></ol></nav></details><details><summary>RSA</summary><nav><ol><li><a href="rsa/key-generator/">Key Generator</a></li><li><a href="rsa/sign/">Sign Message</a></li><li><a href="rsa/verify/">Verify Signature</a></li><li><a href="rsa/encrypt/">Encryption</a></li><li><a href="rsa/decrypt/">Decryption</a></li></ol></nav></details></div><div class="section"><h3>Compression</h3><details><summary>GZIP</summary><nav><ol><li><a href="gzip/create/">Create</a></li><li><a href="gzip/extract/">Extract</a></li><li><a href="gzip/compress/">Compress</a></li><li><a href="gzip/decompress/">Decompress</a></li></ol></nav></details><details><summary>DEFLATE</summary><nav><ol><li><a href="deflate/compress/">Compress</a></li><li><a href="deflate/decompress/">Decompress</a></li></ol></nav></details><details><summary>Brotli</summary><nav><ol><li><a href="brotli/create/">Create</a></li><li><a href="brotli/extract/">Extract</a></li><li><a href="brotli/compress/">Compress</a></li><li><a href="brotli/decompress/">Decompress</a></li></ol></nav></details><details><summary>Zstandard</summary><nav><ol><li><a href="zstandard/create/">Create</a></li><li><a href="zstandard/extract/">Extract</a></li><li><a href="zstandard/compress/">Compress</a></li><li><a href="zstandard/decompress/">Decompress</a></li></ol></nav></details><details><summary>XZ</summary><nav><ol><li><a href="xz/create/">Create</a></li><li><a href="xz/extract/">Extract</a></li><li><a href="xz/compress/">Compress</a></li><li><a href="xz/decompress/">Decompress</a></li></ol></nav></details><details><summary>ZIP</summary><nav><ol><li><a href="zip/create/">Create</a></li><li><a href="zip/extract/">Extract</a></li></ol></nav></details><details><summary>TAR</summary><nav><ol><li><a href="tar/create/">Create</a></li><li><a href="tar/extract/">Extract</a></li></ol></nav></details></div><div class="section"><h3>Encoding</h3><details><summary>Hex (Base16)</summary><nav><ol><li><a href="hex_encode.html">Encode</a></li><li><a href="hex_decode.html">Decode</a></li><li><a href="hex_encode_file.html">File to Hex</a></li><li><a href="hex_decode_file.html">Hex to File</a></li></ol></nav></details><details><summary>Base32</summary><nav><ol><li><a href="base32_encode.html">Encode</a></li><li><a href="base32_decode.html">Decode</a></li><li><a href="base32_encode_file.html">File to Base32</a></li><li><a href="base32_decode_file.html">Base32 to File</a></li></ol></nav></details><details><summary>Base58</summary><nav><ol><li><a href="base58/encode/">Encode</a></li><li><a href="base58/decode/">Decode</a></li><li><a href="base58/encode/file/">File to Base58</a></li><li><a href="base58/decode/file/">Base58 to File</a></li></ol></nav></details><details class="active" open><summary>Base64</summary><nav><ol><li><a href="base64_encode.html">Encode</a></li><li><a href="base64_decode.html">Decode</a></li><li><a href="base64_encode_file.html">File to Base64</a></li><li class="active"><a href="base64_decode_file.html">Base64 to File</a></li></ol></nav></details><details><summary>CBOR</summary><nav><ol><li><a href="cbor/encode/">Encode</a></li><li><a href="cbor/decode/">Decode</a></li></ol></nav></details><details><summary>HTML</summary><nav><ol><li><a href="html_encode.html">Encode</a></li><li><a href="html_decode.html">Decode</a></li></ol></nav></details><details><summary>URL</summary><nav><ol><li><a href="url_encode.html">Encode</a></li><li><a href="url_decode.html">Decode</a></li><li><a href="url/parser/">Parser</a></li></ol></nav></details><details><summary>JWT</summary><nav><ol><li><a href="jwt/decoder/">Decoder</a></li></ol></nav></details></div><div class="section"><h3>Format</h3><details><summary>JSON</summary><nav><ol><li><a href="json/validator/">Validator</a></li><li><a href="json/minifier/">Minifier</a></li><li><a href="json/formatter/">Formatter</a></li><li><a href="json/viewer/">Viewer</a></li><li><a href="json/compare/">Compare</a></li></ol></nav></details><details><summary>XML</summary><nav><ol><li><a href="xml/validator/">Validator</a></li><li><a href="xml/minifier/">Minifier</a></li><li><a href="xml/formatter/">Formatter</a></li></ol></nav></details></div><div class="section"><h3>Convert</h3><details><summary>Case</summary><nav><ol><li><a href="case/lower/">lower case</a></li><li><a href="case/upper/">UPPER CASE</a></li><li><a href="case/lower-camel/">lowerCamelCase</a></li><li><a href="case/upper-camel/">UpperCamelCase</a></li><li><a href="case/snake/">snake_case</a></li><li><a href="case/kebab/">kebab-case</a></li><li><a href="case/constant/">CONSTANT_CASE</a></li></ol></nav></details></div><div class="section"><h3>Generator</h3><details><summary>UUID</summary><nav><ol><li><a href="generator/uuid/v1/">UUID v1 Generator</a></li><li><a href="generator/uuid/v3/">UUID v3 Generator</a></li><li><a href="generator/uuid/v4/">UUID v4 Generator</a></li><li><a href="generator/uuid/v5/">UUID v5 Generator</a></li><li><a href="generator/uuid/v6/">UUID v6 Generator</a></li><li><a href="generator/uuid/v7/">UUID v7 Generator</a></li></ol></nav></details><details><summary>Password</summary><nav><ol><li><a href="generator/password/">Password Generator</a></li></ol></nav></details><details><summary>QR Code</summary><nav><ol><li><a href="qr-code/generator/">QR Code Generator</a></li></ol></nav></details></div><div class="section"><h3>Others</h3><details><summary>Others</summary><nav><ol><li><a href="text/compare/">Text Compare</a></li><li><a href="syntax-highlight/">Syntax Highlight</a></li></ol></nav></details></div><div class="section"><h3>Links</h3><nav class="links"><ol><li><a href="https://github.com/emn178/online-tools/issues">Contact</a></li></ol></nav></div></div></div><div id="content"><div class="top-nav"><button id="sidebar-toggler" aria-controls="sidebar" aria-expanded="false" aria-label="Menu"><img src="images/menu.svg" width="24" height="24" alt="Menu"></button></div><header><h1>Decode Base64 to File</h1></header><main><div class="tool-page"><details class="tool-description"><summary class="block-title"><span>Decode standard, URL-safe, unpadded, IMAP-style, or custom-alphabet Base64 data into a downloadable file online. Expand to read more.</span></summary><div class="tool-description-content"><h2 id="decode-base64-to-a-file">Decode Base64 to a file</h2>
<p>This tool converts Base64 text back into binary bytes and downloads the result using the filename you provide. You can paste the encoded text, load it from a local text file, or fetch it from a URL.</p>
<p>Base64 is an encoding rather than encryption. Decoding does not validate whether the resulting file is safe, authentic, or appropriate for its filename extension. Standard Base64 and Base64URL are defined in <a href="https://www.rfc-editor.org/rfc/rfc4648.html">RFC 4648</a>.</p>
<h2 id="how-to-restore-a-base64-file">How to restore a Base64 file</h2>
<ol>
<li>Paste or load the complete Base64 text.</li>
<li>Enter the desired output filename, including an extension when needed.</li>
<li>Select Standard for common standard, URL-safe, unpadded, MIME-wrapped, or IMAP-style input. Select Custom when the source uses another 64-character alphabet.</li>
<li>Decode and download the resulting bytes.</li>
</ol>
<p>The filename controls how the downloaded file is named; it does not convert the underlying format. For example, naming arbitrary bytes <code>image.png</code> does not make them a valid PNG image.</p>
<h2 id="common-decoding-problems">Common decoding problems</h2>
<p>Base64 input may fail or produce unexpected bytes when it is truncated, uses the wrong custom alphabet, contains invalid characters, or has malformed padding. The Standard decoder accepts CR/LF line breaks and omitted trailing padding. It does not interpret MIME headers or other surrounding protocol text.</p>
<p>If the source is a complete data URL such as <code>data:image/png;base64,...</code>, remove the metadata prefix unless the input handler explicitly expects it. The Base64 payload begins after the comma.</p>
<h2 id="base64-file-faq">Base64 file FAQ</h2>
<h3 id="how-can-i-check-that-the-decoded-file-is-unchanged-">How can I check that the decoded file is unchanged?</h3>
<p>Compare a trusted checksum of the original file with a checksum calculated after decoding. Encoding and decoding correctly should preserve every byte.</p>
<h3 id="is-it-safe-to-decode-unknown-base64-">Is it safe to decode unknown Base64?</h3>
<p>Base64 text can represent any file type, including executable or malicious content. Treat decoded files with the same caution as any untrusted download.</p>
<h3 id="how-do-i-encode-a-file-">How do I encode a file?</h3>
<p>Use the <a href="/online-tools/base64_encode_file.html">File to Base64 tool</a> to convert local or URL content into Base64 text. Use <a href="/online-tools/base64_decode.html">Base64 Decode</a> when the result should be displayed as text instead of downloaded.</p>
</div></details><div class="layout"><div class="layout-block"><div class="input"><div class="block block-fill"><div class="block-title">Input<div class="toolbar"><button class="icon" data-toggle="fullscreen"><img class="fullscreen-icon" src="images/fullscreen.svg" alt="Full Screen" title="Full Screen"><img class="fullscreen-icon-exit" src="images/fullscreen-exit.svg" alt="Full Screen" title="Full Screen"></button></div></div><textarea class="container" id="input" spellcheck="false" placeholder="Enter here..." data-remember="input" data-share="input" style="display:none;word-break:break-all;"></textarea><div class="droppable-zone container" id="droppable-zone"><input class="droppable-file" type="file" id="file" data-auto-update><div class="droppable-zone-wrapper"><img class="droppable-zone-icon" src="images/file.svg" alt="File"><div class="droppable-zone-text">Drag and drop the file here or click to select a file. It will process locally and won't be uploaded.</div></div></div></div></div><div class="output"><div class="block block-fill"><div class="block-title">Output<div class="toolbar"><a class="icon" id="download-image" download="download" style="display:none" onclick="gtag('event', 'download');"><img src="images/download.svg" alt="Download" title="Download"/></a><button class="icon" data-toggle="fullscreen"><img class="fullscreen-icon" src="images/fullscreen.svg" alt="Full Screen" title="Full Screen"><img class="fullscreen-icon-exit" src="images/fullscreen-exit.svg" alt="Full Screen" title="Full Screen"></button></div></div><textarea class="container" id="output" spellcheck="false" placeholder="Output here..." data-encoding-from="#output-type" data-toggle="monacoEditor" readonly="readonly"></textarea></div></div></div><div class="settings"><div class="block block-fill"><div class="block-title">Settings</div><div class="container"><div class="setting"><a class="btn" id="execute">Decode</a></div><div class="setting"><label class="switcher"><input type="checkbox" value="1" id="auto-update" checked><div class="toggle"></div><span>Auto Update</span></label></div><div class="setting"><label class="switcher"><input type="checkbox" value="1" id="remember-input"><div class="toggle"></div><span>Remember Input</span></label></div><div class="setting"><label for="file-type">Input Type</label><select id="file-type" data-remember="file-type" data-auto-update><option value="text">Encoded Text</option><option value="file">Encoded File</option></select></div><div class="setting"><label for="download-file-name">File Name</label><input type="text" id="download-file-name" data-remember="download-file-name" value="download.txt" placeholder="Download File Name"></div><div class="setting"><label for="format">Format</label><select id="format" data-remember="format" data-option="format" data-share="format"><option value="standard">Standard</option><option value="custom">Custom</option></select></div><div class="setting" id="custom-alphabet-block" style="display:none;"><label for="custom-alphabet">Alphabet</label><input type="text" id="custom-alphabet" data-remember="custom-alphabet" data-option="custom-alphabet" data-share="custom_alphabet" value="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/" maxlength="64"></div></div></div></div></div></div><script>++waitLoadCount;
delayScripts.push({
src: 'js/base64.js?v=8',
onload: function () {
window.method = withOptions(download, ['format', 'custom-alphabet']);
methodLoad();
}
});</script><script>++waitLoadCount;
delayScripts.push({
src: 'js/base64.min.js?v=0.5.0',
onload: function () {
methodLoad();
}
});</script><script>++waitLoadCount;
delayScripts.push({
src: 'js/url-blob.js?v=1',
onload: function () {
methodLoad();
}
});
++waitLoadCount;
delayScripts.push({
src: 'js/droppable-file.js',
onload: function () {
methodLoad();
}
});
++waitLoadCount;
delayScripts.push({
src: 'js/file.js?v=11',
onload: function () {
methodLoad();
}
});</script><script>window.PROCESSING_MESSAGE = 'decoding...';</script></main></div><div id="message"></div></div><script src="js/jquery-1.10.1.min.js" defer></script><script src="js/main.js?v=44" defer></script></body></html>