byte array mucking
by russau
HTML
<textarea id='b64'>6b/HhVX+piS7Mh8ADeOoWw0svfsCCgdweEPLsAYD0rI=</textarea>
<div id="hex"></div>
<br/>
<div id="print"></div>
JavaScript
//var decodedData = window.atob('AAAAgQC0zZdicU76uEg1v91R9H2ZEF1h9TDNdKHjGwdqjuW3lm9dRRmjju+5xin1nG2IH6eToK6peMoQbywF58R/G3KqsDkbRYZclevFNcuEfvFsQzYdGnr8R/IUUv9V+dN9QyZtSZVNBPr0rYpLTdLQt3mx+YRPtTsWyB0mfljli2F+yQAAAEEA5uigRgKp8ScGauUijvdOLZIhHWq7y5Wz+nOHUuDw8P7wOTKU34QJAoWEe771p9Pf/GTA/kr0BQnPQvWUDxGzJwAAAEEA3TkLqSvA96vIUqsq2M4YkieIihjvbBGeg1x0QSzccNGF/jxhYWiuJFtnKXPPM0XL+CbNPpclBN+S0aqr4VkP1QAAAEEAurrpmpqj5vg087ZngKfFGR5rozDiTsK5DceTV97Ka3Y+Nzl+XWTxDBWk4YPh2ZlKv402hZEfWBYxUDn5ZkH/bw==');
var decodedData = window.atob($('#b64').val());
for (i = 0; i < decodedData.length; ++i) {
$('#hex').append(leftpad(decodedData.charCodeAt(i).toString(16), 2, '0') + " ");
if (isPrint(decodedData[i])) $('#print').append(decodedData[i]+ " ");
else $('#print').append("█ ");
}
function leftpad(str, len, pad) {
if (len + 1 >= str.length) {
str = Array(len + 1 - str.length).join(pad) + str;
}
return str;
}
function isPrint(aChar)
{
myCharCode = aChar.charCodeAt(0);
if((myCharCode > 31) && (myCharCode < 127))
{
return true;
}
return false;
}