Saltar al contenido

¿Cómo cifro las contraseñas con PostgreSQL?

Solución:

digest(data text, type text) returns bytea; no es una sintaxis válida.

Recomiendo usar bcrypt en lugar de. No se requieren definiciones de funciones adicionales:

INSERT into "login" (login, password, employee_id) 
     VALUES ('email',crypt('password', gen_salt('bf'));

Más tarde…

UPDATE table SET password = crypt('password',gen_salt('bf'))

Y comprobando la contraseña:

SELECT ... FROM table 
    WHERE password is NOT NULL 
      AND password = crypt('password-to-test',password);

Bcrypt es recomendado por Crafted Software y Jeff Atwood. Los documentos oficiales de pgcrypto también pueden ser de interés.

Sé que esta pregunta es antigua, pero para aquellos que tienen el mismo problema.

Paso 1: primero verifique si prcrypto está instalado o no

select e.extname, n.nspname from pg_catalog.pg_extension e left join pg_catalog.pg_namespace n on n.oid = e.extnamespace;

Paso 2: Si no está instalado, cree una extensión

CREATE EXTENSION IF NOT EXISTS pgcrypto;

Paso 3: Calcula un hash binario de los datos dados.

    CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$
      SELECT encode(digest($1, 'sha1'), 'hex')
    $$ LANGUAGE SQL STRICT IMMUTABLE;

Último paso:

También use la función de codificación si desea el resumen como una cadena hexadecimal

SELECT encode(digest('blue', 'sha1'), 'hex');

o

directamente sha('blue')

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *