keydown, keyup, keypress

HTML

Press any key and get the message here: <span id="state-msg"></span><br />
<input type="text" id="texto"><br />

<span id="contenido"></span>

JavaScript

var msg = document.getElementById('state-msg');

var entropia = 0;

document.body.addEventListener('keyup', function(e) 
{
    entropia = 0;
    numeros = false;
    letrasd = false;
    letrasu = false;
    signos = false;
    simbo = false;
    texto = document.getElementById('texto').value;
    [...texto].forEach(function(entry) {
    numeros = numeros || (entry.charCodeAt()>=48) && (entry.charCodeAt()<=57);
    letrasd = letrasd || (entry.charCodeAt()>=97) && (entry.charCodeAt()<=122);
    letrasu = letrasu || (entry.charCodeAt()>=65) && (entry.charCodeAt()<=90);
    signos = signos || (entry.charCodeAt()>=32) && (entry.charCodeAt()<=47);
    simbo = simbo || (entry.charCodeAt()>=123) && (entry.charCodeAt()<=255);
//    console.log(entry.charCodeAt()+ " "+numeros+ " "+ letrasd+ " "+ letrasu+ " "+signos + " "+simbo);
//    entropia = Math.max (entropia,entry.charCodeAt() -32);    
});
//	console.log(entropia + " " + Math.pow(entropia,texto.length));
	if (numeros) entropia = entropia + 10;
  if (letrasd) entropia = entropia + 25;
  if (letrasu) entropia = entropia + 25;
  if (signos) entropia = entropia + 16;
  if (simbo) entropia = entropia + 128;
	posi = Math.pow(entropia,texto.length)
  document.getElementById('contenido').innerHTML="Rango busqueda: " + entropia + " caracteres.<br />Combinaciones: " + posi+ "<br />Intentos online (1k/s): " + enDias(posi/1000)+ "<br />Intentos offline (1G/s): " + enDias(posi/1000000000) + "<br />";
});

function enDias(seconds)
{
		salida = "Aproximadamente ";
    var numyears = Math.floor(seconds / (86400 * 365));
    if (numyears > 1000)
    	return salida+Math.floor(numyears/1000)+ " milenios."
    if (numyears > 100)
    	return salida+Math.floor(numyears/100)+ " siglos."
    
    if (numyears > 0)
    	return salida+numyears+ " años."
    var numdays = Math.floor(seconds / 86400);
    if (numdays > 0)
    	return salida+numdays+ " dias."
    var numhours = Math.floor((seconds % 86400) / 3600);
    if (numhours > 0)
   ...