RE: Crear claves aleatorias

From: Lennin Caro <lennin(dot)caro(at)yahoo(dot)com>
To: 'POSTGRES' <pgsql-es-ayuda(at)postgresql(dot)org>, Gorka <gorkapostgres(at)yahoo(dot)es>
Subject: RE: Crear claves aleatorias
Date: 2009-10-08 15:29:48
Message-ID: 784710.53010.qm@web59504.mail.ac4.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- On Thu, 10/8/09, Gorka <gorkapostgres(at)yahoo(dot)es> wrote:

From: Gorka <gorkapostgres(at)yahoo(dot)es>
Subject: RE: [pgsql-es-ayuda] Crear claves aleatorias
To: "'POSTGRES'" <pgsql-es-ayuda(at)postgresql(dot)org>
Date: Thursday, October 8, 2009, 3:07 PM

>-----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.

--
TIP 5: ¿Has leído nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Si plpgsql es el lenguaje procedimental de postgresql
No te va a afectar en forma negativa la base de datos

ejecuta
"create language plpgsql" para que poder ejecutar tu funcion

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2009-10-08 16:10:58 RE: [OT]Mapas de Google y Postgis
Previous Message Gorka 2009-10-08 15:07:13 RE: Crear claves aleatorias