Help
RSS
API
Feed
Maltego
Contact
Domain > base64pro.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
Whois
Property
Value
Email
owner-1729733@base64pro.com.whoisprivacyservice.org
NameServer
NS-1559.AWSDNS-02.CO.UK
Created
2017-01-20 01:45:12
Changed
2018-12-16 23:53:17
Registrar
Amazon Registrar, In
DNS Resolutions
Date
IP Address
2017-05-19
216.137.41.141
(
ClassC
)
2017-05-25
13.32.188.173
(
ClassC
)
2018-07-04
13.33.165.21
(
ClassC
)
2018-07-04
13.33.165.128
(
ClassC
)
2018-07-04
52.84.133.18
(
ClassC
)
2018-07-04
13.33.165.75
(
ClassC
)
2018-07-04
13.33.165.172
(
ClassC
)
2018-07-04
52.84.133.216
(
ClassC
)
2018-07-05
52.85.233.217
(
ClassC
)
2018-07-05
52.84.11.168
(
ClassC
)
2018-07-05
52.85.233.113
(
ClassC
)
2018-07-05
52.84.11.198
(
ClassC
)
2018-07-05
52.85.233.137
(
ClassC
)
2018-07-05
52.84.11.15
(
ClassC
)
2018-07-05
52.85.233.174
(
ClassC
)
2018-07-05
52.84.11.37
(
ClassC
)
2018-07-17
13.33.165.81
(
ClassC
)
2018-07-17
54.239.172.96
(
ClassC
)
2018-07-17
54.239.172.24
(
ClassC
)
2018-07-17
54.239.172.248
(
ClassC
)
2018-07-17
54.239.172.99
(
ClassC
)
2018-07-17
54.239.172.240
(
ClassC
)
2018-07-17
54.239.172.200
(
ClassC
)
2018-07-17
54.239.172.181
(
ClassC
)
2018-07-17
13.33.165.145
(
ClassC
)
2018-07-17
13.33.165.77
(
ClassC
)
2018-07-17
13.33.165.31
(
ClassC
)
2018-07-24
54.239.172.35
(
ClassC
)
2018-07-24
13.33.165.238
(
ClassC
)
2018-07-24
54.239.172.167
(
ClassC
)
2018-07-24
216.137.41.212
(
ClassC
)
2018-07-25
52.84.133.54
(
ClassC
)
2018-07-25
52.84.133.223
(
ClassC
)
2018-07-25
54.239.172.71
(
ClassC
)
2018-07-26
216.137.41.111
(
ClassC
)
2018-07-26
52.84.133.22
(
ClassC
)
2018-07-26
216.137.41.176
(
ClassC
)
2018-07-26
54.239.172.246
(
ClassC
)
2018-07-26
52.84.133.124
(
ClassC
)
2018-07-26
54.239.172.110
(
ClassC
)
2018-07-26
52.84.11.108
(
ClassC
)
2018-07-26
52.84.11.162
(
ClassC
)
2018-07-26
216.137.41.170
(
ClassC
)
2018-07-31
52.84.133.201
(
ClassC
)
2018-07-31
216.137.41.131
(
ClassC
)
2018-07-31
216.137.41.187
(
ClassC
)
2018-07-31
216.137.41.133
(
ClassC
)
2018-07-31
52.84.133.157
(
ClassC
)
2018-07-31
216.137.41.190
(
ClassC
)
2018-07-31
52.84.133.215
(
ClassC
)
2018-07-31
54.239.172.38
(
ClassC
)
2018-08-01
52.84.11.50
(
ClassC
)
2018-08-01
52.84.11.172
(
ClassC
)
2018-08-01
52.84.11.14
(
ClassC
)
2018-08-01
52.84.11.229
(
ClassC
)
2018-08-01
216.137.41.214
(
ClassC
)
2018-08-06
13.33.165.220
(
ClassC
)
2018-08-06
13.33.165.64
(
ClassC
)
2018-08-06
13.33.165.191
(
ClassC
)
2018-08-07
54.239.172.178
(
ClassC
)
2018-08-07
54.239.172.204
(
ClassC
)
2018-08-12
52.84.7.7
(
ClassC
)
2018-08-12
52.84.7.75
(
ClassC
)
2018-08-12
52.84.7.236
(
ClassC
)
2018-08-12
52.84.7.107
(
ClassC
)
2018-08-22
52.84.133.191
(
ClassC
)
2018-08-23
52.84.133.15
(
ClassC
)
2018-08-23
13.32.185.194
(
ClassC
)
2018-08-23
13.32.185.28
(
ClassC
)
2018-08-23
13.32.185.178
(
ClassC
)
2018-08-23
13.32.185.8
(
ClassC
)
2018-08-23
13.32.185.55
(
ClassC
)
2018-08-23
13.32.185.22
(
ClassC
)
2018-08-23
52.84.133.248
(
ClassC
)
2018-08-23
13.32.185.85
(
ClassC
)
2018-08-23
13.32.185.150
(
ClassC
)
2018-08-23
52.84.133.231
(
ClassC
)
2018-08-23
13.32.185.172
(
ClassC
)
2018-08-24
52.85.112.26
(
ClassC
)
2018-08-24
52.85.112.137
(
ClassC
)
2018-08-24
52.85.112.146
(
ClassC
)
2018-08-24
52.85.112.204
(
ClassC
)
2018-08-26
13.33.165.115
(
ClassC
)
2018-08-26
13.33.165.17
(
ClassC
)
2018-08-26
13.33.165.105
(
ClassC
)
2018-08-26
13.33.165.155
(
ClassC
)
2018-09-05
52.84.7.24
(
ClassC
)
2018-09-07
52.84.7.134
(
ClassC
)
2018-09-07
52.84.7.105
(
ClassC
)
2018-09-07
52.84.7.28
(
ClassC
)
2018-09-07
52.84.7.111
(
ClassC
)
2018-09-09
52.84.146.5
(
ClassC
)
2018-09-09
52.84.146.148
(
ClassC
)
2018-09-09
52.84.146.211
(
ClassC
)
2018-09-09
52.84.146.39
(
ClassC
)
2018-09-13
13.32.185.77
(
ClassC
)
2018-09-13
54.239.172.120
(
ClassC
)
2018-09-13
13.32.185.228
(
ClassC
)
2018-09-13
52.84.133.52
(
ClassC
)
2018-09-13
13.33.165.113
(
ClassC
)
2018-09-13
52.84.133.167
(
ClassC
)
2018-09-13
13.32.185.217
(
ClassC
)
2018-09-13
13.33.165.35
(
ClassC
)
2018-09-13
54.239.172.189
(
ClassC
)
2018-09-13
13.33.165.165
(
ClassC
)
2018-09-13
54.239.172.2
(
ClassC
)
2018-09-13
54.239.172.176
(
ClassC
)
2018-09-13
13.32.185.166
(
ClassC
)
2018-09-13
52.84.133.175
(
ClassC
)
2018-09-13
54.239.172.14
(
ClassC
)
2018-09-13
54.239.172.117
(
ClassC
)
2018-09-13
54.239.172.213
(
ClassC
)
2018-09-13
13.32.185.181
(
ClassC
)
2018-09-13
52.84.133.203
(
ClassC
)
2018-09-13
54.239.172.154
(
ClassC
)
2018-09-13
13.32.185.15
(
ClassC
)
2018-09-13
52.84.133.101
(
ClassC
)
2018-09-13
52.84.133.226
(
ClassC
)
2018-09-13
13.32.185.169
(
ClassC
)
2018-09-13
54.239.172.141
(
ClassC
)
2018-09-13
13.32.185.7
(
ClassC
)
2018-09-13
52.84.133.93
(
ClassC
)
2018-09-13
54.239.172.119
(
ClassC
)
2018-09-13
54.239.172.214
(
ClassC
)
2018-09-13
52.84.133.253
(
ClassC
)
2018-09-13
52.84.133.16
(
ClassC
)
2018-09-13
54.239.172.131
(
ClassC
)
2018-09-13
52.84.133.111
(
ClassC
)
2018-09-13
52.84.133.79
(
ClassC
)
2018-09-13
54.239.172.202
(
ClassC
)
2018-09-13
13.33.165.239
(
ClassC
)
2018-09-13
54.239.172.89
(
ClassC
)
2018-09-13
54.239.172.142
(
ClassC
)
2018-09-13
54.239.172.253
(
ClassC
)
2018-09-13
54.239.172.218
(
ClassC
)
2018-09-13
13.32.185.225
(
ClassC
)
2018-09-13
52.84.133.32
(
ClassC
)
2018-09-13
54.239.172.194
(
ClassC
)
2018-09-13
13.32.185.189
(
ClassC
)
2018-09-13
13.32.185.161
(
ClassC
)
2018-09-13
54.239.172.135
(
ClassC
)
2018-09-13
13.32.185.254
(
ClassC
)
2018-09-13
52.84.133.123
(
ClassC
)
2018-09-13
52.84.133.80
(
ClassC
)
2018-09-13
54.239.172.104
(
ClassC
)
2018-09-13
54.239.172.185
(
ClassC
)
2018-09-13
13.32.185.177
(
ClassC
)
2018-09-20
52.84.146.141
(
ClassC
)
2018-09-20
52.84.146.98
(
ClassC
)
2018-09-20
52.84.146.24
(
ClassC
)
2018-09-20
52.84.146.123
(
ClassC
)
2018-09-20
52.84.133.162
(
ClassC
)
2018-09-21
52.84.133.152
(
ClassC
)
2018-09-21
54.239.172.242
(
ClassC
)
2018-09-26
54.239.172.23
(
ClassC
)
2018-09-26
54.239.172.197
(
ClassC
)
2018-09-26
13.32.185.162
(
ClassC
)
2018-09-26
13.35.8.103
(
ClassC
)
2018-09-26
52.84.133.235
(
ClassC
)
2018-09-26
54.239.172.148
(
ClassC
)
2018-09-26
54.239.172.3
(
ClassC
)
2018-09-26
13.32.185.137
(
ClassC
)
2018-09-26
54.239.172.13
(
ClassC
)
2018-09-26
13.33.166.136
(
ClassC
)
2018-09-26
13.32.185.203
(
ClassC
)
2018-09-26
13.35.8.123
(
ClassC
)
2018-09-26
54.239.172.130
(
ClassC
)
2018-09-26
13.33.166.253
(
ClassC
)
2018-09-26
13.35.8.43
(
ClassC
)
2018-09-26
13.32.185.221
(
ClassC
)
2018-09-26
13.32.185.250
(
ClassC
)
2018-09-26
13.33.166.40
(
ClassC
)
2018-09-26
13.32.185.129
(
ClassC
)
2018-09-26
13.32.185.76
(
ClassC
)
2018-09-26
13.35.8.70
(
ClassC
)
2018-09-26
54.239.172.17
(
ClassC
)
2018-09-26
54.239.172.244
(
ClassC
)
2018-09-26
13.33.166.92
(
ClassC
)
2018-09-26
54.239.172.254
(
ClassC
)
2018-10-16
13.32.185.133
(
ClassC
)
2018-10-16
52.84.122.81
(
ClassC
)
2018-10-16
54.239.172.175
(
ClassC
)
2018-10-16
54.239.172.56
(
ClassC
)
2018-10-16
54.239.172.136
(
ClassC
)
2018-10-16
13.32.185.11
(
ClassC
)
2018-10-16
52.84.133.87
(
ClassC
)
2018-10-16
54.239.172.209
(
ClassC
)
2018-10-16
13.32.185.243
(
ClassC
)
2018-10-16
52.84.122.91
(
ClassC
)
2018-10-16
54.230.19.108
(
ClassC
)
2018-10-16
13.32.185.113
(
ClassC
)
2018-10-16
52.84.133.125
(
ClassC
)
2018-10-16
52.84.133.89
(
ClassC
)
2018-10-16
52.84.122.107
(
ClassC
)
2018-10-16
54.239.172.19
(
ClassC
)
2018-10-16
13.32.185.25
(
ClassC
)
2018-10-16
52.84.133.6
(
ClassC
)
2018-10-16
54.230.19.223
(
ClassC
)
2018-10-16
13.32.185.204
(
ClassC
)
2018-10-16
54.239.172.8
(
ClassC
)
2018-10-16
54.239.172.252
(
ClassC
)
2018-10-16
13.32.185.121
(
ClassC
)
2018-10-16
52.84.133.128
(
ClassC
)
2018-10-16
52.84.122.199
(
ClassC
)
2018-10-16
54.239.172.190
(
ClassC
)
2018-10-16
13.32.185.186
(
ClassC
)
2018-10-16
54.230.19.225
(
ClassC
)
2018-10-16
13.32.185.209
(
ClassC
)
2018-10-16
52.84.133.181
(
ClassC
)
2018-10-16
52.84.133.13
(
ClassC
)
2018-10-16
54.239.172.12
(
ClassC
)
2018-10-16
52.84.122.218
(
ClassC
)
2018-10-16
54.239.172.41
(
ClassC
)
2018-10-16
13.32.185.21
(
ClassC
)
2018-10-16
52.84.133.232
(
ClassC
)
2018-10-16
54.239.172.95
(
ClassC
)
2018-10-16
54.239.172.145
(
ClassC
)
2026-01-07
75.2.60.5
(
ClassC
)
Port 443
HTTP/1.1 200 OKAccept-Ranges: bytesAge: 0Cache-Control: public,max-age0,must-revalidateCache-Status: Netlify Edge; fwdmissContent-Length: 19827Content-Type: text/html; charsetUTF-8Date: Wed, 07 Jan 2026 22:03:18 GMTEtag: f2db7297b39a29be75495c897d46d265-sslServer: NetlifyStrict-Transport-Security: max-age31536000X-Nf-Request-Id: 01KED7RN6ZZMNTXVQ95AE0B61J !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Base64 Converter Pro (Raw)/title> link relpreconnect hrefhttps://fonts.googleapis.com> link relpreconnect hrefhttps://fonts.gstatic.com crossorigin> link hrefhttps://fonts.googleapis.com/css2?familyInter:wght@300;400;500;600;700&displayswap relstylesheet> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css> style> :root { --primary: #6366f1; --primary-hover: #4f46e5; --bg-body: #f3f4f6; --bg-card: #ffffff; --text-main: #111827; --text-muted: #6b7280; --border: #e5e7eb; --shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --radius: 12px; --transition: all 0.3s ease; } body.dark { --primary: #818cf8; --primary-hover: #6366f1; --bg-body: #0f172a; --bg-card: #1e293b; --text-main: #f3f4f6; --text-muted: #94a3b8; --border: #334155; } * { box-sizing: border-box; margin: 0; padding: 0; font-family: Inter, sans-serif; } body { background-color: var(--bg-body); color: var(--text-main); min-height: 100vh; display: flex; flex-direction: column; transition: var(--transition); } nav { background: var(--bg-card); padding: 1rem 2rem; box-shadow: 0 1px 3px rgba(0,0,0,0.1); display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 50; } .logo { font-weight: 700; font-size: 1.25rem; color: var(--primary); display: flex; align-items: center; gap: 0.5rem; } .theme-toggle { background: transparent; border: 1px solid var(--border); color: var(--text-main); padding: 0.5rem; border-radius: 50%; cursor: pointer; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; transition: var(--transition); } .theme-toggle:hover { background: var(--border); } main { flex: 1; max-width: 900px; width: 100%; margin: 2rem auto; padding: 0 1rem; } .tabs { display: flex; gap: 1rem; margin-bottom: 1.5rem; background: var(--bg-card); padding: 0.5rem; border-radius: var(--radius); box-shadow: var(--shadow); } .tab-btn { flex: 1; padding: 0.75rem; border: none; background: transparent; color: var(--text-muted); font-weight: 600; cursor: pointer; border-radius: 8px; transition: var(--transition); } .tab-btn.active { background: var(--primary); color: white; } .card { background: var(--bg-card); padding: 2rem; border-radius: var(--radius); box-shadow: var(--shadow); display: none; animation: fadeIn 0.4s ease; } .card.active { display: block; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .drop-zone { border: 2px dashed var(--border); border-radius: var(--radius); padding: 3rem 2rem; text-align: center; cursor: pointer; transition: var(--transition); margin-bottom: 1.5rem; } .drop-zone:hover, .drop-zone.drag-over { border-color: var(--primary); background: rgba(99, 102, 241, 0.05); } .drop-zone i { font-size: 3rem; color: var(--text-muted); margin-bottom: 1rem; } .drop-zone p { color: var(--text-muted); margin-bottom: 1rem; } .btn-primary { background: var(--primary); color: white; border: none; padding: 0.75rem 1.5rem; border-radius: 8px; font-weight: 500; cursor: pointer; display: inline-flex; align-items: center; gap: 0.5rem; transition: var(--transition); } .btn-primary:hover { background: var(--primary-hover); } inputtypefile { display: none; } .result-area { margin-top: 1.5rem; display: none; } .result-area.show { display: block; } .info-bar { display: flex; justify-content: space-between; align-items: center; background: rgba(0,0,0,0.03); padding: 0.75rem; border-radius: 8px; margin-bottom: 1rem; border: 1px solid var(--border); flex-wrap: wrap; gap: 10px; } .file-meta { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9rem; } textarea { width: 100%; height: 200px; padding: 1rem; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-body); color: var(--text-main); font-family: Courier New, monospace; font-size: 0.85rem; resize: vertical; margin-bottom: 1rem; } textarea:focus { outline: 2px solid var(--primary); border-color: transparent; } .preview-container { margin-top: 1rem; text-align: center; padding: 1rem; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-body); max-height: 300px; overflow: hidden; display: flex; justify-content: center; align-items: center; } .preview-container img { max-width: 100%; max-height: 250px; border-radius: 4px; object-fit: contain; } .hidden { display: none !important; } .toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 100; display: flex; flex-direction: column; gap: 10px; } .toast { background: var(--bg-card); color: var(--text-main); padding: 1rem 1.5rem; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); border-left: 4px solid var(--primary); display: flex; align-items: center; gap: 10px; animation: slideIn 0.3s ease; } .toast.error { border-left-color: #ef4444; } @keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /style>/head>body> nav> div classlogo> i classfas fa-exchange-alt>/i> Base64 Pro span stylefont-size:0.8rem; opacity:0.7; margin-left:5px;>(Pure)/span> /div> button classtheme-toggle idthemeToggle aria-labelToggle Dark Mode> i classfas fa-moon>/i> /button> /nav> main> div classtabs> button classtab-btn active onclickswitchTab(encoder)> i classfas fa-file-import>/i> File to Base64 /button> button classtab-btn onclickswitchTab(decoder)> i classfas fa-file-code>/i> Base64 to File /button> /div> div idencoder classcard active> div classdrop-zone iddropZone> i classfas fa-cloud-upload-alt>/i> h3>Drag & Drop your file here/h3> p>or click to browse/p> button classbtn-primary onclickdocument.getElementById(fileInput).click()> Browse Files /button> input typefile idfileInput> /div> div idencoderResult classresult-area> div classinfo-bar> div classfile-meta> i classfas fa-file>/i> span idfileName>filename.png/span> span stylecolor: var(--text-muted)>|/span> span idfileSize>0 KB/span> /div> button classbtn-primary onclickresetEncoder() stylebackground: #ef4444; padding: 0.4rem 0.8rem; font-size: 0.85rem;> Clear /button> /div> label styledisplay:block; margin: 1rem 0 0.5rem; font-weight: 500;>Pure Base64 Output (No Header):/label> textarea idbase64Output readonly>/textarea> div styledisplay:flex; gap:1rem;> button classbtn-primary onclickcopyToClipboard(base64Output)> i classfas fa-copy>/i> Copy String /button> /div> /div> /div> div iddecoder classcard> div classdecoder-input> label styledisplay:block; margin-bottom: 0.5rem; font-weight: 500;>Paste Raw Base64 String:/label> textarea idbase64Input placeholderPaste your raw base64 characters here...>/textarea> div styledisplay:flex; gap:1rem;> button classbtn-primary onclickdecodeBase64()> i classfas fa-cogs>/i> Decode to File /button> button classbtn-primary onclickdocument.getElementById(base64Input).value stylebackground: var(--border); color: var(--text-main);> Clear /button> /div> /div> div iddecoderResult classresult-area> div classinfo-bar> div classfile-meta> i classfas fa-magic stylecolor: var(--primary);>/i> span>Detected:/span> span iddecodedType stylefont-weight:bold;>Scanning.../span> /div> /div> div iddecodedPreview classpreview-container hidden>/div> div stylemargin-top: 1rem;> button classbtn-primary iddownloadBtn> i classfas fa-download>/i> Download File /button> /div> /div> /div> /main> div classtoast-container idtoastContainer>/div> script> // --- Theme & Tabs --- const themeToggle document.getElementById(themeToggle); const body document.body; if(localStorage.getItem(theme) dark) { body.classList.add(dark); themeToggle.innerHTML i classfas fa-sun>/i>; } themeToggle.addEventListener(click, () > { body.classList.toggle(dark); const isDark body.classList.contains(dark); localStorage.setItem(theme, isDark ? dark : light); themeToggle.innerHTML isDark ? i classfas fa-sun>/i> : i classfas fa-moon>/i>; }); function switchTab(tabId) { document.querySelectorAll(.card).forEach(c > c.classList.remove(active)); document.querySelectorAll(.tab-btn).forEach(b > b.classList.remove(active)); document.getElementById(tabId).classList.add(active); const btn Array.from(document.querySelectorAll(.tab-btn)).find(b > b.getAttribute(onclick).includes(tabId)); if(btn) btn.classList.add(active); } function formatBytes(bytes) { if (!+bytes) return 0 Bytes; const k 1024; const sizes Bytes, KB, MB, GB; const i Math.floor(Math.log(bytes) / Math.log(k)); return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizesi}`; } function showToast(message, isError false) { const container document.getElementById(toastContainer); const toast document.createElement(div); toast.className `toast ${isError ? error : }`; toast.innerHTML `i classfas ${isError ? fa-exclamation-circle : fa-check-circle}>/i>span>${message}/span>`; container.appendChild(toast); setTimeout(() > { toast.style.opacity 0; setTimeout(() > toast.remove(), 300); }, 3000); } // --- ENCODER (File -> Pure Base64) --- const dropZone document.getElementById(dropZone); const fileInput document.getElementById(fileInput); dragenter, dragover, dragleave, drop.forEach(e > dropZone.addEventListener(e, p > { p.preventDefault(); p.stopPropagation(); })); dragenter, dragover.forEach(e > dropZone.classList.add(drag-over)); dragleave, drop.forEach(e > dropZone.classList.remove(drag-over)); dropZone.addEventListener(drop, e > handleFiles(e.dataTransfer.files)); fileInput.addEventListener(change, e > handleFiles(e.target.files)); function handleFiles(files) { if (files.length 0) return; const file files0; document.getElementById(fileName).textContent file.name; document.getElementById(fileSize).textContent formatBytes(file.size); const reader new FileReader(); reader.onload (e) > { const fullString e.target.result; // Extract pure base64 part after the comma const pureBase64 fullString.split(,)1; document.getElementById(base64Output).value pureBase64; document.getElementById(encoderResult).classList.add(show); showToast(Converted to Pure Base64!); }; reader.readAsDataURL(file); } function resetEncoder() { document.getElementById(encoderResult).classList.remove(show); fileInput.value ; document.getElementById(base64Output).value ; } function copyToClipboard(id) { const el document.getElementById(id); el.select(); navigator.clipboard.writeText(el.value) .then(() > showToast(Copied!)) .catch(() > showToast(Failed to copy, true)); } // --- DECODER (Pure Base64 -> File with Signature Detection) --- // Helper: Guess MIME type from first few bytes (Magic Numbers) function getMimeFromSignature(headerHex) { switch (headerHex) { case 89504e47: return { mime: image/png, ext: png }; case 47494638: return { mime: image/gif, ext: gif }; case 25504446: return { mime: application/pdf, ext: pdf }; case 504b0304: return { mime: application/zip, ext: zip }; // or docx/xlsx case 52617221: return { mime: application/x-rar-compressed, ext: rar }; case 377abcaf: return { mime: application/x-7z-compressed, ext: 7z }; case 1f8b0800: return { mime: application/gzip, ext: gz }; default: if (headerHex.startsWith(ffd8ff)) return { mime: image/jpeg, ext: jpg }; if (headerHex.startsWith(52494646) && headerHex.endsWith(57454250)) return { mime: image/webp, ext: webp }; // RIFF...WEBP return null; // Unknown } } function decodeBase64() { const input document.getElementById(base64Input).value.trim(); if (!input) { showToast(Please enter Base64 string, true); return; } // Remove data URI prefix if user accidentally pasted it let cleanInput input; if (input.includes(base64,)) { cleanInput input.split(base64,)1; } // Remove whitespace/newlines cleanInput cleanInput.replace(/\s/g, ); try { const byteCharacters atob(cleanInput); const byteNumbers new Array(byteCharacters.length); for (let i 0; i byteCharacters.length; i++) { byteNumbersi byteCharacters.charCodeAt(i); } const byteArray new Uint8Array(byteNumbers); // Detect File Type (Magic Bytes) let headerHex ; for (let i 0; i 4; i++) { headerHex + byteArrayi.toString(16).padStart(2, 0); } const detected getMimeFromSignature(headerHex); const finalMime detected ? detected.mime : application/octet-stream; const finalExt detected ? detected.ext : bin; // Create Blob const blob new Blob(byteArray, { type: finalMime }); const blobUrl URL.createObjectURL(blob); // UI Updates const resultArea document.getElementById(decoderResult); const typeLabel document.getElementById(decodedType); const preview document.getElementById(decodedPreview); typeLabel.textContent detected ? `${finalExt.toUpperCase()} (${finalMime})` : Unknown (saved as .bin); resultArea.classList.add(show); // Preview Image if applicable if (finalMime.startsWith(image/)) { preview.innerHTML `img src${blobUrl} altPreview>`; preview.classList.remove(hidden); } else { preview.classList.add(hidden); } // Setup Download const downloadBtn document.getElementById(downloadBtn); downloadBtn.onclick () > { const link document.createElement(a); link.href blobUrl; link.download `decoded_file.${finalExt}`; document.body.appendChild(link); link.click(); document.body.removeChild(link); showToast(Download Started); }; showToast(Decoded Successfully!); } catch (e) { console.error(e); showToast(Invalid Base64 string, true); } } /script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]