Estoy trabajando con postgresql y tengo un problema con la encriptacion de contraseñas. Quiero encriptar las contraseñas con sha1 y no me deja.
Instale postgresql-contrib-8.3 y trate de utilizar la funcion pgcrypto.sql de esta manera:
postgres@pc:# cd /usr/share/postgresql/8.3/contrib
postgres@pc//usr/share/postgresql/8.3/contrib :# psql -U usuario . -d base_de_dato -f crypto.sql
CREATE FUNCION : esto es lo que me da como resultado
CREATE FUNCION
CREATE FUNCION
....
despues de ejecutar el codigo anterior pruebo con encriptar las contraseña y no reconoce ninguna funcion q utilice, sha1, encryp, etc....
Solo funciona con md5, sin necesidad de haber instalado postgresql-contrib-8.3.
Alguna ayuda? lo q sea para poder hacer funcionar por lo menos sha1...
Saludos cordiales.-
Felicidades..!!!
Cristian..-
Re: Como encriptar informacion
Lun, 28/12/2009 - 16:02 — Anónimo¿Como intentas encriptar la contraseña con sha1? ¿Que comando utilizas y que error te da?
Re: Como encryptar informacion?
Mar, 29/12/2009 - 12:21 — cce77Intento guardar esta informacion:
prueba=# insert into nombres (nombre,apellido) values ('pepe', sha1('pepito'));
ERROR: function sha1(unknown) does not exist
LINE 1: ...rt into nombres (nombre,apellido) values ('pepe', sha1('pepi...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
prueba=#
Tambien me da error con encrypt. No tengo idea de como utilizar estas funciones.
Con md5 no tengo ningun problema.-
Que me esta faltando (ademas de inteligencia) ?
Re:Como encriptar informacion?
Mar, 29/12/2009 - 13:19 — cce77Ademas de lo anterior probe de la siguiente manera:
prueba=# insert into nombres (nombre,apellido) values ('pepe', crypt('pepito', gen_salt('sha1')));
ERROR: gen_salt: Unknown salt algorithm
Despues pruebo asi:
prueba=# insert into nombres (nombre,apellido) values ('pinguino', crypt('pepito', gen_salt('md5')));
INSERT 0 1
Y funciona, es decir, con md5 la cosa anda bien pero a sha1 ni ahi q la reconoce. Ha de ser algun problema de configuracion, pero nose...
Re:Como encriptar informacion?
Mar, 29/12/2009 - 14:01 — cce77Resolvi el problema para encriptar con sha1
en el archivo pgcrypto.sql cree esta funcion:
CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$
SELECT encode(digest($1, 'sha1'), 'hex')
$$ LANGUAGE SQL STRICT IMMUTABLE;
y la siguiente sentencia funciono:
prueba=# insert into nombres (nombre, apellido) values ('pinguino', sha1('test'));
INSERT 0 1
Despues quise probar esto:
prueba=# insert into nombres (nombre, apellido) values ('pinguino', crypt('test', gen_salt('sha1')));
ERROR: gen_salt: Unknown salt algorithm
y como se ve, sigue dando error con el algoritmo sha1, con md5 no lo hace.
Pregunta:
-Que algoritmo es mas seguro para encriptar un campo (por ejemplo: contraseñas) de una tabla?
Porque la idea es utilizar un algoritmo lo suficientemente seguro.
-Cual me recomendarias?
Enviar nuevo comentario