es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función para generar una contraseña aleatoria

Quiero una función que genere una contraseña aleatoria. Daré cuatro parámetros a la función: cuántos números debe contener la contraseña, cuántas letras mayúsculas debe contener, cuántas letras minúsculas debe contener y cuántos caracteres especiales debe contener. La contraseña resultante será una mezcla de esos parámetros de entrada.

plsql
crear o reemplazar función (
número_de_dígitos en número,
no_de_caracteres_especiales en número,
no_de_minúsculas en número,
no_de_mayúsculas en número
) devuelve varchar2
como
contraseña

Tags:  ,

Answer

  1. Avatar for davy.ai
      v<em>characters varchar2(100) := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()</em>+-=';
      v<em>password  varchar2(100);
      v</em>random    number;
      v<em>count     number := 1;
    begin
      while v</em>count <= number<em>of</em>digits loop
        v<em>random := round(dbms</em>random.value(1, length(v<em>characters)));
        v</em>password := v<em>password || substr(v</em>characters, v<em>random, 1);
        v</em>count := v_count + 1;
      end loop;
    
    mientras v<em>count <= (número</em>de<em>dígitos + no</em>de<em>caracteres especiales) hacer
        v<em>random := round(dbms</em>random.value(1, length(v<em>characters)));
        v</em>password := v<em>password || substr(v</em>characters, v<em>random, 1);
        v</em>count := v_count + 1;
      end loop;</em>
    
    mientras v<em>count <= (número</em>de<em>inferiores + número</em>de<em>caracteres especiales + número</em>de<em>dígitos) hacer
        v<em>random := round(dbms</em>random.value(1, length(v<em>characters)));
        v</em>password := v<em>password || substr(v</em>characters, v<em>random, 1);
        v</em>count := v_count + 1;
      end loop;</em>
    
    mientras v<em>count <= (número</em>de<em>mayúsculas + número</em>de<em>inferiores + número</em>de<em>caracteres especiales + número</em>de<em>dígitos) hacer
        v<em>random := round(dbms</em>random.value(1, length(v<em>characters)));
        v</em>password := v<em>password || substr(v</em>characters, v<em>random, 1);
        v</em>count := v_count + 1;
      end loop;</em>
    
    return v_password;
    end;
    /
    

Comments are closed.