lunes, 3 de junio de 2013

Cómo encriptar el contenido de una consulta SAS



En ocasiones me habían pedido que encriptara la información de una consulta determinada, por ejemplo, debía hacer una consulta en una base de datos 2 millones de registros, que cumplieran una serie de requisitos, y una vez realizada la consulta, solo necesitaban las direcciones de correo electrónico. Hacer la consulta fue "fácil" dentro de lo que cabe.. ya sabemos como son los departamentos de marketing cuando necesitan hacer una acción comercial y necesitan una serie de requisitos que normalmente te preguntas: para qué? 

Buenos a lo que vamos, una vez realizada la extracción, debía enviarla de manera segura, con la información encriptada, para ello, todo el mundo sabe que hay cientos de páginas que pueden encriptar registros sueltos, pero cuando hablamos de una base de datos muy grande, este proceso puede ser tedioso, menos mal que, que logré dar con una solución mucho mas útil y práctica mediante SAS; 


data EMAILS_MD5 (keep = md5 email);
set EMAILS;
md5=put(md5(trim(email)),hex32.); 
run;

para los que no saben nada de SAS, data EMAILS_MD5 es la tabla a crear.  Con el keep seleccionamos el campo email y md5
set EMAILS es la tabla origen (la tabla que hemos generado con los requisitos de la consulta. 

Con esto, modificamos la variable md5 (inicialmente vacía) utilizando la funciona md5() sobre el campo email, sin espacios de por medio, para ello se utiliza el TRIM, y el resultado obtenido, se codifica en hexadecimal. El resultado obtenido es el campo MD5 con la información del campo email encriptada. 

Otra forma de hacerlo es directamente con algún valor en lugar de un campo específico: 

data TEST;
   y = md5('test1@altgrf4.com');
   put y= / y = hex32.;
   md5= put(y,hex32.); 
run;


Espero que haya sido de ayuda! 



No hay comentarios:

Publicar un comentario