Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Encriptación de Campos en Posgres con SHA512

Estas en el tema de Encriptación de Campos en Posgres con SHA512 en el foro de PostgreSQL en Foros del Web. Buenos días compañeros de ForosDelWeb, Les cuento... Mi problema comienza cuando necesito hacer una migración de base de datos de Oracle a Postgres por políticas ...
  #1 (permalink)  
Antiguo 05/04/2012, 08:47
Avatar de jgabrielsinner10  
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Información Encriptación de Campos en Posgres con SHA512

Buenos días compañeros de ForosDelWeb,

Les cuento... Mi problema comienza cuando necesito hacer una migración de base de datos de Oracle a Postgres por políticas de mi lugar de trabajo. Lo que pasa es que las claves y usuarios de la aplicación están encriptados con el algoritmo SHA512 en Oracle y cuando necesito pasar esto a Postgres se me ha hecho una odisea.

El código que he utilizado es el siguiente

Código:
prueba=# insert into  usuarios (usuario_crypt,clave) values ('misuario', crypt('miclave', gen_salt('sha512')));
ERROR: gen_salt: Unknown salt algorithm
Código:
prueba=# insert into usuarios (usuario_crypt,clave) values ('misuario', sha512('miclave'));
ERROR: function sha512(unknown) does not exist
LINE 1: ...rt into usuarios (usuario_crypt,clave) values ('misu...
Niguna de estas dos cosas anda para la encriptación con SHA512. La cuestión es que no sé cómo hacer o qué tengo que hacer: Debo instalar alguna librería? Dónde, Cómo y Cuáles instalo? Debo crear mi propia implementación de este como un store procedure? De antemano muchas gracias por su siempre oportuna ayuda.

Ahora mísmo estoy haciendo las pruebas en dos equipos con OSs (Windows 7, Ubuntu 10.04), el administrador de base de datos en ambos equipos es PostgreSQL 9.0.4.
  #2 (permalink)  
Antiguo 05/04/2012, 21:13
Avatar de jgabrielsinner10  
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Encriptación de Campos en Posgres con SHA512

Lo resolví :) Instalé PostgreSQL 9.1. Luego, gracias al Application Stack Builder instalé el plugin de PL/Secure for PostgreSQL 9.1.

Una vez instalado estando en las extensiones de la base de datos entrando por PgAdmin hice click derecho en "extensiones" e hice click en "Create New Extention" y luego seleccioné "pgcrypto" y esto al crearme la extensión me creó el grupo de funciones que este trae como "digest", "decode", "crypt", "gen_salt" entre otras muchas... luego creé una función propia de acuerdo a la guía de PostgreSQL Documentation:

Código:
CREATE OR REPLACE FUNCTION sha512(bytea)
  RETURNS text AS
$BODY$
    SELECT encode(digest($1, 'sha512'), 'hex')
$BODY$
  LANGUAGE sql IMMUTABLE STRICT
  COST 100;
ALTER FUNCTION sha512(bytea)
  OWNER TO postgres;

Etiquetas: encriptacion, sha1, sha512
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:41.