RE: Crear claves aleatorias

From: "Gorka" <gorkapostgres(at)yahoo(dot)es>
To: "'POSTGRES'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Crear claves aleatorias
Date: 2009-10-08 15:07:13
Message-ID: 002f01ca4829$05c954e0$115bfea0$@es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

>-----Mensaje original-----
>De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-
>owner(at)postgresql(dot)org] En nombre de Rafael Martinez
>Enviado el: jueves, 08 de octubre de 2009 16:03
>Para: Gorka
>CC: POSTGRES
>Asunto: Re: [pgsql-es-ayuda] Crear claves aleatorias
>
>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>Gorka wrote:
>> ¿Hay alguna manera en postgres de crear una función que genere
>passwords
>> aleatorias?
>>
>
>Hola
>
>Te mando esta funcion que puedes utilizar para generar claves
>aleatorias. El parametro aleatorio lo define la funcion random().
>
>- ----------------------------------------------------------------------
>--
>CREATE OR REPLACE FUNCTION generate_password(integer) RETURNS TEXT AS $$
>DECLARE
> len ALIAS FOR $1;
> cnt INTEGER;
> password TEXT :='';
>
> characters_not_included TEXT := E''',-./:;<>@^_`\\';
> BEGIN
>
> FOR cnt IN 1..len LOOP
> password := password || chr(round((random()*87)+35)::integer);
> END LOOP;
>
> password :=
>translate(password,characters_not_included,substr(md5(random()::text),ro
>und((random()*(32-
>char_length(characters_not_included))))::integer,char_length(characters_
>not_included)));
>
>RETURN password;
>
>END;
>$$ LANGUAGE plpgsql;
>- ----------------------------------------------------------------------
>--
>
>Ejemplo:
>
>SELECT generate_password(8);
> generate_password
>- -------------------
> r58R1N=Z
>(1 row)
>

Hola.
Parece un poco más aleatoria que la función anterior, ya que combina algunos
caracteres (además de letras y dígitos).
Al ejecutar la query en la ventana SQL del Pgadmin III me da el siguiente
error:

ERROR: no existe el lenguaje «plpgsql»
Estado SQL:42704
Sugerencias:Usar CREATE LANGUAGE para instalar el lenguaje en la base de
datos.

¿No es plpgsql el lenguaje en sí que utiliza postgres? ¿Qué tengo que poner
"CREATE LANGUAGE plpgsql;"? ¿Esto no afectará a la base de datos, verdad? Es
que me da un poco de miedo porque está en producción.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Lennin Caro 2009-10-08 15:29:48 RE: Crear claves aleatorias
Previous Message Diego Gil 2009-10-08 14:19:31 Re: [OT]Mapas de Google y Postgis