{"id":3464,"date":"2026-10-28T09:02:07","date_gmt":"2026-10-28T16:02:07","guid":{"rendered":"https:\/\/cyber.mag212.com\/tools\/decoder\/"},"modified":"2026-10-28T09:02:07","modified_gmt":"2026-10-28T16:02:07","slug":"decoder","status":"publish","type":"page","link":"https:\/\/cyber.mag212.com\/fr\/tools\/decoder\/","title":{"rendered":"Bo\u00eete \u00e0 outils de d\u00e9codage"},"content":{"rendered":"\n<div class=\"m212x\" id=\"m212-decoder\">\n<style>\n.m212x{--bg:#0a0f15;--panel:#0f1720;--panel2:#121c27;--line:#1f2d3a;--line2:#2a3b4b;--ink:#e6edf3;--mute:#9fb0c0;--green:#3ee6a0;--red:#ff5468;--cyan:#3cc8f0;--amber:#f6b544;--violet:#a98bff;\n font-family:Inter,system-ui,-apple-system,\"Segoe UI\",sans-serif;color:var(--ink);line-height:1.6;font-size:16px}\n.m212x *{box-sizing:border-box}\n.m212x h2,.m212x h3,.m212x h4,.m212x p,.m212x ul,.m212x ol{margin:0}\n.m212x a{color:var(--cyan)}\n.m212x .hero{position:relative;background:radial-gradient(ellipse at 90% 0%,rgba(60,200,240,.14),transparent 60%),var(--bg);border:1px solid var(--line);border-radius:14px;padding:34px 30px;overflow:hidden;margin-bottom:22px}\n.m212x .hero::before{content:\"\";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--green),var(--cyan) 60%,var(--red))}\n.m212x .kick{font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);margin-bottom:8px}\n.m212x .hero h2{font-size:clamp(26px,4.6vw,40px);line-height:1.1;font-weight:800;margin-bottom:10px}\n.m212x .hero h2 span{color:var(--green)}\n.m212x .hero p{color:var(--mute);font-size:17px;max-width:680px}\n.m212x .sec{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:22px;scroll-margin-top:110px}\n.m212x .sec h3{font-size:22px;font-weight:800;margin-bottom:8px}\n.m212x .sec h4{font-size:16px;font-weight:800;margin:16px 0 6px}\n.m212x .sec p{color:#cdd8e2;margin-bottom:10px}\n.m212x .lead{color:var(--mute) !important;margin-bottom:16px !important}\n.m212x .grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}\n.m212x .card{display:block;background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:18px;text-decoration:none;color:var(--ink)}\n.m212x a.card:hover{border-color:var(--green)}\n.m212x .card b{display:block;font-size:17px;margin-bottom:6px}\n.m212x .card p{color:var(--mute);font-size:14.5px;margin:0}\n.m212x .card .go{display:inline-block;margin-top:10px;font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--green)}\n.m212x .ic{font-size:26px;display:block;margin-bottom:8px}\n.m212x ul.l,.m212x ol.l{padding-left:22px;color:#cdd8e2;margin-bottom:10px}\n.m212x ul.l li,.m212x ol.l li{margin-bottom:6px}\n.m212x table{width:100%;border-collapse:collapse;font-size:14.5px;margin:6px 0 12px}\n.m212x th{text-align:left;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);border-bottom:1px solid var(--line2);padding:8px}\n.m212x td{border-bottom:1px solid var(--line);padding:8px;vertical-align:top;color:#d3dde6}\n.m212x code,.m212x .mono{font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",Consolas,monospace;font-size:.9em}\n.m212x code{background:rgba(60,200,240,.1);color:#bfe9ff;padding:1px 5px;border-radius:4px}\n.m212x pre{font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",Consolas,monospace;font-size:13.5px;background:#060a0f;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:6px;padding:12px 14px;overflow-x:auto;color:#cfe8d9;margin:6px 0 12px;white-space:pre}\n.m212x .callout{border:1px solid rgba(246,181,68,.4);background:rgba(246,181,68,.08);border-radius:10px;padding:14px 16px;margin:12px 0}\n.m212x .callout b{color:var(--amber)}\n.m212x .pill{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.06em;padding:2px 9px;border-radius:999px;border:1px solid}\n.m212x .p-n{color:#9fb0c0;border-color:#3a4b5b}\n.m212x .p-l{color:var(--green);border-color:rgba(62,230,160,.5);background:rgba(62,230,160,.08)}\n.m212x .p-m{color:var(--amber);border-color:rgba(246,181,68,.5);background:rgba(246,181,68,.08)}\n.m212x .p-h{color:#ff8a5c;border-color:rgba(255,138,92,.5);background:rgba(255,138,92,.08)}\n.m212x .p-c{color:var(--red);border-color:rgba(255,84,104,.5);background:rgba(255,84,104,.08)}\n.m212x .toc{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}\n.m212x .toc a{font-size:14px;font-weight:700;text-decoration:none;color:var(--ink);background:var(--panel2);border:1px solid var(--line2);border-radius:999px;padding:7px 13px}\n.m212x .toc a:hover{border-color:var(--green);color:var(--green)}\n.m212x input[type=text],.m212x input[type=search],.m212x input[type=url]{width:100%;background:#060a0f;color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:12px 14px;font-size:16px;font-family:inherit}\n.m212x input:focus{outline:2px solid var(--cyan);outline-offset:1px}\n.m212x button{font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;border-radius:8px;padding:11px 16px;border:1px solid var(--line2);background:var(--panel2);color:var(--ink)}\n.m212x button.pri{background:var(--green);color:#04130c;border-color:var(--green)}\n.m212x .help{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:linear-gradient(90deg,rgba(60,200,240,.12),rgba(62,230,160,.05));border:1px solid rgba(60,200,240,.35);border-radius:14px;padding:20px 24px}\n.m212x .help div{flex:1;min-width:240px}\n.m212x .help a.cta{display:inline-block;background:var(--cyan);color:#03141b;font-weight:800;text-decoration:none;border-radius:8px;padding:12px 18px}\n.m212x .small{font-size:13.5px;color:var(--mute)}\n<\/style>\n<section class=\"hero\"><div class=\"kick\">MAG212 CYBER \u00b7 Tools<\/div><h2>Decoder <span>toolbox.<\/span><\/h2><p>Decode and encode Base64, URL and hex, inspect JWT tokens, and defang or refang suspicious links and IP addresses for safe sharing \u2014 a lightweight kit for analysts and admins.<\/p><div class=\"toc\"><a href=\"#m212dc-tool\">Decode \/ encode<\/a><a href=\"#m212dc-jwt\">JWT inspector<\/a><a href=\"#m212dc-tips\">Analyst tips<\/a><\/div><\/section><style>.m212x .sn-row{display:flex;gap:8px;flex-wrap:wrap}\n.m212x .sn-ex{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 2px}.m212x .sn-ex button{padding:5px 10px;font-size:13px;font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",monospace}\n.m212x .sn-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px;margin:14px 0}\n.m212x .sn-kv div{background:#060a0f;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;min-width:0}\n.m212x .sn-kv span{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}\n.m212x .sn-kv b{font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",monospace;font-size:15px;color:#e6edf3;word-break:break-all}\n.m212x .sn-err{color:var(--red);display:none;margin-top:8px}\n.m212x .sn-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}.m212x .sn-tw table{min-width:560px}\n.m212x .sn-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}\n.m212x textarea{width:100%;min-height:150px;background:#060a0f;color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:12px 14px;font:14px\/1.5 \"JetBrains Mono\",\"DejaVu Sans Mono\",monospace}\n.m212x select{background:#060a0f;color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:10px 12px;font-size:15px;font-family:inherit}\n.m212x .verdict{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:#060a0f;border:1px solid var(--line2);border-radius:12px;padding:16px 18px;margin:16px 0 12px}\n.m212x .big{font-size:52px;font-weight:800;line-height:1;min-width:80px}\n.m212x .fl{padding:10px 2px;border-bottom:1px solid var(--line);display:flex;gap:10px}.m212x .fl span{flex:none}\n.m212x .rec{background:#060a0f;border:1px solid var(--line2);border-radius:10px;padding:12px 14px;margin:8px 0}\n.m212x .rec b{display:block;margin-bottom:4px}.m212x .rec pre{margin:6px 0 0;white-space:pre-wrap;word-break:break-all}\n.m212x .meter{height:10px;border-radius:99px;background:#1a2733;overflow:hidden;margin:8px 0}.m212x .meter i{display:block;height:100%;width:0;border-radius:99px;transition:width .25s}\n<\/style>\n<style>.m212x .dc-ops{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.m212x .dc-ops button{padding:7px 12px;font-size:13.5px}\n.m212x .dc-ops button.on{background:rgba(60,200,240,.15);border-color:var(--cyan);color:#bfe9ff}\n.m212x .dc-grp{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);align-self:center;margin-right:4px}\n.m212x textarea{min-height:130px}\n.m212x .jwt pre{white-space:pre-wrap;word-break:break-all}<\/style>\n<section class=\"sec\" id=\"m212dc-tool\"><h3>Decode \/ encode<\/h3>\n<textarea id=\"m212dcin\" aria-label=\"Input\" spellcheck=\"false\" placeholder=\"Paste text, Base64, a URL, hex or an indicator of compromise\u2026\">aHR0cHM6Ly9leGFtcGxlLmNvbS9sb2dpbj91c2VyPWFsZXg=<\/textarea>\n<div class=\"dc-ops\" id=\"m212dcops\">\n<span class=\"dc-grp\">Base64<\/span><button type=\"button\" data-op=\"b64d\" class=\"on\">Decode<\/button><button type=\"button\" data-op=\"b64e\">Encode<\/button><button type=\"button\" data-op=\"b64ud\">URL-safe decode<\/button>\n<span class=\"dc-grp\">URL<\/span><button type=\"button\" data-op=\"urld\">Decode<\/button><button type=\"button\" data-op=\"urle\">Encode<\/button>\n<span class=\"dc-grp\">Hex<\/span><button type=\"button\" data-op=\"hexd\">Decode<\/button><button type=\"button\" data-op=\"hexe\">Encode<\/button>\n<span class=\"dc-grp\">IOC<\/span><button type=\"button\" data-op=\"defang\">Defang<\/button><button type=\"button\" data-op=\"refang\">Refang<\/button>\n<span class=\"dc-grp\">Text<\/span><button type=\"button\" data-op=\"rot13\">ROT13<\/button><button type=\"button\" data-op=\"rev\">Reverse<\/button><\/div>\n<textarea id=\"m212dcout\" aria-label=\"Output\" spellcheck=\"false\" readonly><\/textarea>\n<div class=\"sn-head\" style=\"margin-top:8px\"><span class=\"small\" id=\"m212dcmsg\"><\/span><div style=\"display:flex;gap:8px\"><button type=\"button\" id=\"m212dcsw\">\u21c5 Use output as input<\/button><button type=\"button\" class=\"pri\" id=\"m212dccp\">Copy output<\/button><\/div><\/div>\n<p class=\"small\" style=\"margin-top:10px\">\ud83d\udd12 Everything runs in your browser. Decoded text is displayed as plain text and never executed.<\/p><\/section>\n<section class=\"sec\" id=\"m212dc-jwt\"><h3>JWT inspector<\/h3><p class=\"lead\">Paste a JSON Web Token to read its header and claims. The signature is <b>not<\/b> verified \u2014 never trust a token&#8217;s contents without checking its signature on the server.<\/p>\n<textarea id=\"m212dcjwt\" aria-label=\"JWT\" spellcheck=\"false\" placeholder=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0In0.signature\"><\/textarea>\n<p class=\"small sn-err\" id=\"m212dcjerr\"><\/p><div class=\"jwt\" id=\"m212dcjout\"><\/div><\/section>\n<section class=\"sec\" id=\"m212dc-tips\"><h3>Analyst tips<\/h3><ul class=\"l\"><li><b>Defang before sharing.<\/b> <code>hxxps[:\/\/]evil[.]example<\/code> can&#8217;t be clicked by accident in tickets, chats or emails, and won&#8217;t be auto-previewed.<\/li><li>Phishing links often hide the destination in Base64 or URL-encoded parameters \u2014 decode them here instead of clicking.<\/li><li>Obfuscated PowerShell frequently uses <code>-EncodedCommand<\/code> with Base64 of UTF-16LE text; decoded output may show gaps between characters.<\/li><li>A JWT with <code>\"alg\": \"none\"<\/code>, or a token whose <code>exp<\/code> is far in the future, deserves a closer look in your application.<\/li><\/ul>\n<p class=\"small\">Need to check where a link really goes? Use the <a href=\"\/tools\/link-checker\/\">suspicious link checker<\/a>.<\/p><\/section>\n<p class=\"small noprint\" style=\"margin:-8px 0 18px;padding:0 4px\">\u2696\ufe0f For education and use on systems you own or are authorised to test. Results are automated guidance, not a professional audit. See our <a href=\"\/terms-of-use\/\">terms of use<\/a> and <a href=\"\/privacy-policy\/\">privacy policy<\/a>.<\/p>\n<div class=\"help\"><div><div class=\"kick\" style=\"margin-bottom:4px\">Need expert help?<\/div>\n<p style=\"font-size:17px;margin:0\"><b>MAG212 CYBER<\/b> offers network and cybersecurity consultation, plus security seminars for organisations around the world.<\/p><\/div>\n<a class=\"cta\" href=\"\/services\/\">Explore our services \u2192<\/a><\/div>\n<script>\n(function(){\nvar root=document.getElementById('m212-decoder'); if(!root) return;\nfunction $(i){ return document.getElementById(i); }\nvar op='b64d';\nfunction b2s(bytes){ try{ return new TextDecoder('utf-8',{fatal:true}).decode(bytes); }catch(e){ var s=''; for(var i=0;i<bytes.length;i++){ var c=bytes[i]; s+=(c>=32 ? (c<127) : (c===9 ? true : (c===10 ? true : c===13))) ? String.fromCharCode(c) : '\u00b7'; } return s; } }\nfunction b64bytes(s){ s=s.replace(\/\\s+\/g,'').replace(\/-\/g,'+').replace(\/_\/g,'\/'); while(s.length%4) s+='='; var bin=atob(s), out=new Uint8Array(bin.length); for(var i=0;i<bin.length;i++) out[i]=bin.charCodeAt(i); return out; }\nfunction b64enc(s){ var b=new TextEncoder().encode(s), bin=''; for(var i=0;i<b.length;i++) bin+=String.fromCharCode(b[i]); return btoa(bin); }\nvar OPS={\n b64d:function(s){ return b2s(b64bytes(s)); }, b64ud:function(s){ return b2s(b64bytes(s)); }, b64e:b64enc,\n urld:function(s){ return decodeURIComponent(s.replace(\/\\+\/g,' ')); }, urle:function(s){ return encodeURIComponent(s); },\n hexd:function(s){ var h=s.replace(\/0x\/gi,'').replace(\/[^0-9a-f]\/gi,''); if(h.length%2) throw new Error('odd'); var b=new Uint8Array(h.length\/2); for(var i=0;i<b.length;i++) b[i]=parseInt(h.substr(i*2,2),16); return b2s(b); },\n hexe:function(s){ return Array.prototype.map.call(new TextEncoder().encode(s),function(x){ return ('0'+x.toString(16)).slice(-2); }).join(' '); },\n defang:function(s){ return s.replace(\/\\bhttp(s?):\\\/\\\/\/gi,function(m,x){ return 'hxxp'+x+'[:\/\/]'; }).replace(\/\\bftp:\\\/\\\/\/gi,'fxp[:\/\/]').replace(\/@\/g,'[@]').replace(\/(\\w)\\.(?=\\w)\/g,'$1[.]'); },\n refang:function(s){ return s.replace(\/hxxp(s?)\\[:\\\/\\\/\\]\/gi,'http$1:\/\/').replace(\/hxxp(s?):\\\/\\\/\/gi,'http$1:\/\/').replace(\/fxp\\[:\\\/\\\/\\]\/gi,'ftp:\/\/').replace(\/\\[\\.\\]|\\(\\.\\)|\\{\\.\\}|\\[dot\\]\/gi,'.').replace(\/\\[@\\]|\\[at\\]\/gi,'@').replace(\/\\[:\\\/\\\/\\]\/g,':\/\/'); },\n rot13:function(s){ return s.replace(\/[a-z]\/gi,function(c){ var b=c<='Z'?65:97; return String.fromCharCode((c.charCodeAt(0)-b+13)%26+b); }); },\n rev:function(s){ return Array.from(s).reverse().join(''); }\n};\nfunction run(){ var s=$('m212dcin').value, m=$('m212dcmsg'); m.textContent=''; m.style.color='';\n  if(!s){ $('m212dcout').value=''; return; }\n  try{ var r=OPS[op](s); $('m212dcout').value=r; m.textContent=s.length+' \u2192 '+r.length+' characters'; if(\/\u00b7\/.test(r)) if(op.indexOf('d')>-1) m.textContent+=' \u00b7 contains binary (non-text) bytes shown as \u00b7'; }\n  catch(e){ $('m212dcout').value=''; m.textContent='This input is not valid for that operation.'; m.style.color='var(--red)'; } }\nArray.prototype.forEach.call(root.querySelectorAll('[data-op]'),function(b){ b.addEventListener('click',function(){ op=b.getAttribute('data-op'); Array.prototype.forEach.call(root.querySelectorAll('[data-op]'),function(x){ x.classList.toggle('on',x===b); }); run(); }); });\n$('m212dcin').addEventListener('input',run);\n$('m212dcsw').addEventListener('click',function(){ $('m212dcin').value=$('m212dcout').value; run(); });\n$('m212dccp').addEventListener('click',function(){ var b=this; try{ navigator.clipboard.writeText($('m212dcout').value).then(function(){ b.textContent='Copied \u2713'; setTimeout(function(){ b.textContent='Copy output'; },1500); }); }catch(e){} });\nfunction esc(t){ var d=document.createElement('div'); d.textContent=t; return d.innerHTML; }\nfunction jwt(){\n  var t=$('m212dcjwt').value.trim().replace(\/^Bearer\\s+\/i,''), e=$('m212dcjerr'), o=$('m212dcjout'); e.style.display='none'; o.innerHTML=''; if(!t) return;\n  var p=t.split('.'); if(p.length<2){ e.textContent='A JWT has three parts separated by dots.'; e.style.display='block'; return; }\n  try{ var h=JSON.parse(b2s(b64bytes(p[0]))), c=JSON.parse(b2s(b64bytes(p[1]))), notes=[];\n    var alg=String(h.alg||''); if(alg.toLowerCase()==='none') notes.push(['bad','Algorithm is \"none\": the token is unsigned. Servers must reject it.']); else notes.push(['ok','Signed with '+alg+' (signature not verified here).']);\n    var now=Date.now()\/1000;\n    ['iat','nbf','exp'].forEach(function(k){ if(typeof c[k]==='number'){ var d=new Date(c[k]*1000).toLocaleString(); if(k==='exp'){ if(c[k]<now) notes.push(['warn','Expired '+d+'.']); else notes.push(['ok','Expires '+d+'.']); } else notes.push(['info',(k==='iat'?'Issued ':'Not valid before ')+d+'.']); } });\n    if(typeof c.exp!=='number') notes.push(['warn','No exp (expiry) claim \u2014 the token never expires.']);\n    o.innerHTML='<div class=\"sn-kv\"><div><span>Header<\/span><pre>'+esc(JSON.stringify(h,null,2))+'<\/pre><\/div><div><span>Payload (claims)<\/span><pre>'+esc(JSON.stringify(c,null,2))+'<\/pre><\/div><\/div>'+notes.map(function(n){ return '<div class=\"fl\"><span>'+({bad:'\ud83d\udea9',warn:'\u26a0\ufe0f',info:'\u2139\ufe0f',ok:'\u2705'})[n[0]]+'<\/span><div>'+esc(n[1])+'<\/div><\/div>'; }).join('');\n  }catch(x){ e.textContent='Could not decode this token. Check that it is a complete JWT.'; e.style.display='block'; }\n}\n$('m212dcjwt').addEventListener('input',jwt);\nwindow.m212dc={OPS:OPS,jwt:jwt};\nrun();\n})();\n<\/script>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>MAG212 CYBER \u00b7 Tools Decoder toolbox. Decode and encode Base64, URL and hex, inspect JWT tokens, and defang or refang suspicious links and IP addresses for safe sharing \u2014 a lightweight kit for analysts and admins. Decode \/ encodeJWT inspectorAnalyst tips Decode \/ encode aHR0cHM6Ly9leGFtcGxlLmNvbS9sb2dpbj91c2VyPWFsZXg= Base64DecodeEncodeURL-safe decode URLDecodeEncode HexDecodeEncode IOCDefangRefang TextROT13Reverse \u21c5 Use output as [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3386,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3464","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages\/3464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/comments?post=3464"}],"version-history":[{"count":0,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages\/3464\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages\/3386"}],"wp:attachment":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/media?parent=3464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}