paskola   14-03-2024, 21:18
#1
Hola, recién me suscribí a este foro para aprender más de Gambas. Empiezo por decir que programador no soy sino que hago tareas de sysadmin/dba pero no le temo a tomar un lenguaje de programación para automatizar tareas muy rutinarias. Con eso también quiero decir que mi código no va ser el más bonito. Hoy quiero compartir esta pequeña aplicación que hice para generar contraseñas, que en realidad es un frontend para el programa pwgen que pueden encontrar en cualquier distro de Linux. Como parte de mis actividades debo estar generando usuarios con distintos niveles de complejidad y a los que aveces es encesario no incluir ciertos carácteres. Probé muichas herramientas para esto y finalmente decidi crearme una pequeña app en Gambas que me genera un listado de contraseñas con las especificaciones que le defino. Es miuy sencilla, puede fallar y, debo admitir que es fea. Apreciaría todos sus comentarios, ya de hecho estoy haciendo cambios basado en ejemplos que pude encontrar en este foro lo que agradezco profundamente. 

Anexo va el proyecto en formato tar.gz y un pequeño screenshot de la aplicación. Por el momento mi distro es Archlinux con Plasma 6.

Gracias por su atención
Archivos adjuntos
.gz
Genpasswd-0.0.16.tar.gz (Tamaño: 9.54 KB Descargas: 4)
tincho   15-03-2024, 15:47
#2
(14-03-2024, 21:18)paskola escribió: Hoy quiero compartir esta pequeña aplicación que hice para generar contraseñas,

Bienvenido al foro y gracias por compartir tu código.

1 Saludo.
Shordi   15-03-2024, 18:03
#3
Saludos y bienvenido. He echado un vistado a tu código y no me parece mal, se podría hacer con menos líneas pero se perdería algo de claridad en ello. Lo que sí se hecha de menos es que no se soluciona el problema de no tener pwgen instalado en la máquina. Yo uso Linux Mint y pwgen está en los repositorios pero no lo tengo instalado. Tienes dos maneras de solucionar esto;

a) Compruebas si está instalado al iniciar el programa y si no lo está avisas al usuario, le pides la clave y lo instalas desde tu programa o

b) En el paso 7 al crear el paquete de instalación marcas pwgen como una dependencia y el sistema operativo se encargará de instalarlo al mismo tiempo que tu programa.

[Imagen: wuLNowe.png]
 Este es el paso 7.
y por último una sugerencia. El nombre de tu programa debiera ser algo así como pwgen-gui, que ya da una idea clara de lo que es y lo que hace.

Saludos.
Última modificación: 15-03-2024, 18:04 por Shordi.

No podemos regresar
paskola   15-03-2024, 20:02
#4
Mil gracias Shordi, justo estaba decidiendo sí implementaba la parte de que la aplicación instalara pwgen una vez que compruebe que no está instalado pero la opción de definirlo como dependencia y que sea el sistema operativo quien lo instale me parece más limpia. 

Te agradezco tus sugerencias. Ya atualizaré el post y una vez que haya puesto esos cambios.

Saludos
tincho   15-03-2024, 20:15
#5
Hola Paskola, tal vez te interese una función que indica el grado de "dureza" de una contraseña.
https://gambas-es.org/showthread.php?tid=1515

Lo que dice Shordi es lo "correcto" si tienes que desplegar un programa en un entorno dado y ya tienes el programa terminado y testeado.
Peeeeeero cuando estas desarrollando el programa y lo tienes en un estado verde, beta, alfa etc. y lo tienes que pasar pasar a otros que lo revisan, amplían, prueban, lo del paquete queda un poco fuera de lugar.
Por estas razones hice algunas funciones que instalan todo lo necesario llegado el caso pero sin crear un paquete y expuse todo en un post hace tiempo.
https://gambas-es.org/showthread.php?tid...pendencias
Última modificación: 15-03-2024, 20:23 por tincho.

1 Saludo.
paskola   04-04-2024, 02:51
#6
Hola, actualizo esta publicación con una actualización de la aplicación atendiendo las recomendacines de todos. 

Estos son los cambios: 

1. Ahora ya se incluye pwgen como dependencia en el paquete de instalación así el manejador de paquetes de cada distro se hará cargo de instalarlo.
2. El nombre lo cambié por algo más descriptivo.
3. Hay una rutina que verifica que exista pwgen y avisa en caso de no encontrarlo instalado.
4. Implementé la función para verificar la fortazeza de una contraseña propuesta por Tincho y ahora cada contraseña tiene su valoración.
5. El botón Copy copia el portapepeles únicamente la contraseña que se selecciona.

Como comenté al inicio no soy programador por lo que avanzo despacio. Con este pequeño programa he aprendido varias cosas sobre Gambas que van a servirme para otro proyecto que ya inicié y que, como este, va hacer que mis táreas diarias sean más sencillas.

Les agradezco sus comentarios y sugerencias Smile

Un abrazo
Archivos adjuntos
.gz
pwgen-gui-0.0.1.tar.gz (Tamaño: 9.35 KB Descargas: 3)
Shordi   04-04-2024, 08:56
#7
Muy chulo. Le he hecho una pequeña ampliación, de manera que de opción a instalar pwgen sin salir del programa. También se puede usar de manera más fiable la clase System con su método .exist para saber si está o no instalado.
Quedaría así:
 
Código:
Dim npwgen As String
  Dim n As Integer

  If Not System.Exist("pwgen") Then
    ' Shell "which pwgen | wc -l" To npwgen
    ' if Val(npwgen) > 1 Then
    btStart.Enabled = False
    btCopy.Enabled = False
    btClean.Enabled = False
    Message.Warning("pwgen no estar instalado ¿Desea que se instale ahora?", "Sí", "No")
    If n <> 1 Then Me.Close()
    fPrompt.ShowModal()
    If Not System.Exist("pwgen") Then
      Message.Warning("Algo parece haber fallado en la instalación. pwgen-gui finalizará ahora.")
      Return
    Endif

  Endif
Se incluye también el formulario "fPrompt" que se encarga de la tarea de la instalación.
Pero repito: Muy chulo. Gracias por compartir

Saludos

Se me olvidaba: La instalación, tal como está solo funciona con la debian family, que usa apt. Si usas otras distros habría que adaptarla o ampliar el programa para que utilice el instalador correcto según distro.
Archivos adjuntos
.gz
pwgen-gui-0.0.2.tar.gz (Tamaño: 14.55 KB Descargas: 5)
Última modificación: 04-04-2024, 09:08 por Shordi.

No podemos regresar
tincho   04-04-2024, 20:16
#8
(04-04-2024, 08:56)Shordi escribió: If Not System.Exist("pwgen") Then

Tomo nota de eso.

1 Saludo.
  
Usuarios navegando en este tema: 4 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.