Crear contraseñas seguras con R

in #r6 years ago

Ahora que está tan de moda la criptografía gracias al Bitcoin, voy a explicaros una forma muy sencilla de generar contraseñas robustas y que al mismo tiempo sean fáciles de recordar,..... usando R, claro.

Simplemente tenemos que generar el hash de la palabra o frase que nos guste. Recordaremos la frase pues es legible y la entendemos, pero al pasarla por el algoritmo de criptografía que elijamos nos la transforma en algo completamente indescifrable y robusto.

Un HASH es simplemente el resultado de una función cripto, con la peculiaridad de que la función genera un resultado único e irrepetible para cada entrada y para la misma entrada siempre genera el mismo resultado.

Si le pasamos la palabra "mesa" a la función SHA256 que es la que usa bitcoin nos da esto: 73e29454bd930074942b1784b43dc4a57a669751871b38c92f2c7293e06a9720.

Si cambiamos cualquier cosa por ejemplo escribimos "meso" cambiando la a final por una o el resultado es completamente diferente: 8a685ce757d551c26795699c7c80037c04dda37d05115a2cea8677dc0eb28165

Código generador de HASH

La librería digest de R contiene muchos algoritmos de criptografía, os dejo la siguiente función para a partir de una palabra o frase cualquiera generar los hash en distintos algoritmos, y luego podeis elegir uno de ellos para vuestra contraseña, sabiendo que es simplemente el hash de vuestra frase:

   ## pasar una palabra a cod criptografico
    library(digest)

    pasa_cripto <- function(palabra){
         algos <- c("md5","sha1","crc32","sha256","sha512","xxhash32","xxhash64","murmur32")
           for (i in seq_along(algos)){
             print(paste(algos[i],":  ",digest(palabra, algo=algos[i], serialize=FALSE)))
           }
         }

Uso de la función

Ahora si queremos generar el HASH de la frase siguiente : "en un lugar de la Mancha", ejecutamos el código en R y obtendremos estos resultados:

  pasa_cripto("en un lugar de la Mancha")

[1] "md5 : 07abe2834ca05d5bbfbada9a5cc27691"
[1] "sha1 : 6c6328dc889967a0755c900c837c9d21f6cb4c27"
[1] "crc32 : 95db70dc"
[1] "sha256 : b03b98fd46e6ca719abe0793c4dbb4064961776e21616a1e925f635a558559e2"
[1] "sha512 : c62cf8c3e0c50cb3113ee7334e4084b018f1b8a6c5009d877605f70048645d154b55651b83362fde41bf0a01efc3311d8d099aa21eeb704e1b1dd48070b89924"
[1] "xxhash32 : 6993a3bc"
[1] "xxhash64 : 79fec7ef60031953"
[1] "murmur32 : d254b76d"

Esto es todo amigos.... Saludos en enRdados