Archive for February, 2010

  • Una Buena Razon Para No Usar Siempre La Misma Password

    0

    Días atrás twitter puso en alerta a algunos usuarios para que cambien las passwords porque estaban siendo victimas de prishing. Pasa y pasa que muchos developers hacen herramientas open source, como por ejemplo foros open source PHP los cuales tienen exploits. Trackean sus instalaciones y cuando el foro se hace un poco popular ingresan con un master password (por ejemplo) y se roban todas las passwords y emails. Este es el típico caso donde te chorean la password. Viste que facil es que sepan tu password ? Bueno, ahora perfectamente saben que no deben poner la misma password para todos los sites.

    Ahora, es muy molesto estar acordandose passwords y demas, para eso, hoy les acerco una tecnica para aquellos Java Boys que quieran tener un poco de complicacion en sus vidas.

    La técnica se basa en 1 password master y un 1 string random que puede perfectamente ser el nombre del servicio.

    Por ejemplo, yo elijo como password master “rodrigo” y por ejemplo el servicio de email de yahoo es simplemente “yahoo”. Entonces tenemos “rodrigo”+”yahoo”, en el caso de gmail seria, “rodrigo” +”google” and so on.

    Ahora, como combinar estas palabras para generar una password ? Usamos un algoritmo MD5 bien casero en Java. El código.

    public class MD5Generator() {
    private MessageDigest messageDigest;
    
    private MessageDigest getMessageDigestMD5() throws NoSuchAlgorithmException {
    	if (this.messageDigest == null) {
    		this.messageDigest = MessageDigest.getInstance("MD5");
    	}
    	return this.messageDigest;
    }
    
    public String generate(String key) throws Exception {
    	// start fresh
    	this.getMessageDigestMD5().reset();
    	this.getMessageDigestMD5().update(key.getBytes());
    	byte[] bytes = this.getMessageDigestMD5().digest();
    	// buffer to write the md5 hash to
    	StringBuffer buff = new StringBuffer();
    	for (int l = 0; l < bytes.length; l++) {
    		String hx = Integer.toHexString(0xFF & bytes[l]);
    		// make sure the hex string is correct if 1 character
    		if (hx.length() == 1) buff.append("0");
    		buff.append(hx);
    	}
    	return buff.toString().trim();
    }
    }
    

    Ahora, el uso seria algo asi:

    String master = "rodrigo";
    String service = "yahoo";
    String longMD5 = new MD5Generator().generate(master+service);
    

    La variable longMD5 va a ser un choclo como esto: “37b0227d88adcf07ddb469fa45ad2938″ per pueden hacer un substring para acortarla a por ejemplo 8 caracteres.

    String pass = new MD5Generator().generate(master+service).substring(0,8);
    

    Que lo disfruten.

  • Mas JQuery parte V

    0

    Unwrap elementos

    El método “.wrap()” existe hace rato, pero ahora John Resig ha agregado “.unwrap()” el cual remueve todos los tags exteriores al nodo JQuery seleccionado. Como funciona ?

    Supongamos el siguiente HTML:

    <div>
      <p>Some text here</p>
    </div>

    Queremos extraer el tag <p>, entonces usamos “.unwrap()”.

    $("p").unwrap();

    Este metodo quita el tag <div> que contiene a <p>. Elimina fácilmente el parent tag.