Autor Tema: gramática para generar contraseñas expresiones regulares y alternativas alfabeto  (Leído 6709 veces)

joburu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Buenas, te hago una consulta respecto a un Trabajo Practico relacionado a Lenguajes.

Me piden realizar una plataforma que restrinja las contraseñas posibles (limitando caracteres alfanuméricos, longitudes, etc.) para poder realizar un seguimiento de las contraseñas usadas.
-Definir un conjunto de contraseñas.
-Generar una gramática de la contraseña.

El problema que tengo es referente al enunciado; como elijo las contraseñas, su longitud y formato.

« Última modificación: 23 de Abril 2022, 19:31 por César Krall »

joburu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:gramática para generar contraseñas
« Respuesta #1 en: 30 de Noviembre 2013, 17:56 »
O sea, si quiero hacerla simple: Considero un alfabeto de 5 letras, creo una gramática y sus producciones y tengo un ejercicio como cualquiera del tema.
Pero eso no sería una contraseña (si es libre, uno no está obligado a empezar siempre con, por ejemplo, "a", poner cualquier cosa en el medio y terminas con "d", tan limitada en caracteres y con una estructura tan rígida, pierde el concepto de contraseña).
Ahora bien, si consideramos contraseñas más libres de un alfabeto de diez números (de 0 al 9) donde uno puedo empezar y terminar con cualquier número (más los del medio), se torna muy engorrosa la expresión regular (y no hablemos de una combinación mucho más amplia de letras y números).

Si hago como en los cajeros automáticos que usan 4 digitos y pongo como condición que la longitud es igual a 4, pero al hacer la expresión regular quedaría así: L={0123456789012345678901234567890123456789, cada una con un exponente distinto} ni que hablar del autómata que quedaría un monstruo!

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
Re:gramática para generar contraseñas
« Respuesta #2 en: 01 de Diciembre 2013, 11:21 »
Te respondo a través de un nuevo tema del foro para no mezclar

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
Re:gramática para generar contraseñas
« Respuesta #3 en: 01 de Diciembre 2013, 11:45 »
Supongamos que quieres crear una contraseña que puede constar de cinco letras: a, b, c ó d, ordenadas de cualquier manera.

Una expresión regular sería:

E = (a | b | c | d | e) , con esta expresión decimos que E es bien a, bien b, bien c, bien d o bien d.

La contraseña sería:

Contraseña = EEEEE, con esta expresión decimos que la contraseña se genera concatenando cinco veces la expresión regular E. También podríamos escribirlo así: Contraseña = (a | b | c | d | e) (a | b | c | d | e) (a | b | c | d | e) (a | b | c | d | e) (a | b | c | d | e) pero esta expresión es más farragosa.

Expresado en forma de gramática tendríamos:


Contraseña -- > EEEEE
E -- > a | b | c | d | e


Una contraseña de 4 dígitos como expresión regular sería:

D = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Contraseña = DDDD

Expresado en forma de gramática sería:

Contraseña -- > DDDD

D -- > 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9


Hay una notación para expresiones regulares que nos permite hacer la escritura más cómoda que es la notación de conjuntos. La notación es [A-Z] indica "cualquier letra mayúscula comprendida entre la A y la Z"; [A-Za-z] indica cualquier letra mayúscula o minúscula entre la a y la z. Por último [0-9] indica cualquier dígito comprendido entre 0 y 9. Puedes restringir los conjuntos, por ejemplo [m-z] significa cualquier letra minúscula entre la m y la z, o [5-8] indica cualquier número entre el 5 y el 8.

De esta manera podríamos definir una contraseña de longitud 4 caracteres que admita letras mayúsculas, minúsculas o dígitos de esta manera:

Como expresión regular:

letra = [A-Za-z]
digito = [0-9]
Caracter = letra | digito
contraseña = CaracterCaracterCaracterCaracter

La gramática suele generarse apoyándonos en las expresiones regulares, que son considerados terminales de la gramática. En este caso la gramática sería:

Contraseña -- > CaracterCaracterCaracterCaracter


Nota: el símbolo de elección "|" también se representa a veces usando el símbolo "+"

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".