|
@@ -4,7 +4,6 @@
|
4
|
4
|
![main2.png](images/main2.png)
|
5
|
5
|
![main3.png](images/main3.png)
|
6
|
6
|
|
7
|
|
-[Verano 2016 - Ive - Coralys]
|
8
|
7
|
|
9
|
8
|
En casi todas las instancias en las cuales queremos resolver un problema seleccionamos una o más opciones dependiendo de si se cumplen o no ciertas condiciones. Los programas de computadoras se construyen para resolver problemas y, por lo tanto, deben tener una estructura que permita tomar decisiones y seleccionar alternativas. En C++ las selecciones se estructuran utilizando `if`, `else`, `else if` o `switch`. Muchas veces el uso de estas estructuras también envuelve el uso de expresiones de relación y operadores lógicos. En la experiencia de laboratorio de hoy, practicarás el uso de algunas estructuras de selección, completando el diseño de una aplicación que determina la fortaleza de una contraseña de acceso ("password").
|
10
|
9
|
|
|
@@ -37,7 +36,7 @@ Antes de llegar al laboratorio debes:
|
37
|
36
|
|
38
|
37
|
## Fortaleza de contraseñas de acceso
|
39
|
38
|
|
40
|
|
-Utilizar contraseñas de acceso resistentes es esencial para mantener los datos seguros en los sistemas de información. Una contraseña se considera resistente o fuerte si resulta costo-inefectivo para el "pirata informático" ("hacker") emplear tiempo tratando de adivinarla usando contraseñas ingenuas o fuerza bruta. Por ejemplo, una contraseña que consiste de una palabra simple del diccionario, sin números, símbolos o letras mayúsculas, es tan fácil de descifrar que hasta "un cavernícola puede hacerlo".
|
|
39
|
+Utilizar contraseñas de acceso resistentes es esencial para mantener los datos seguros en los sistemas de información. Una contraseña se considera resistente o fuerte si resulta que no es costo-efectivo para el "pirata informático" ("hacker") emplear tiempo tratando de adivinarla usando contraseñas ingenuas o fuerza bruta. Por ejemplo, una contraseña que consiste de una palabra simple del diccionario, sin números, símbolos o letras mayúsculas, es tan fácil de descifrar que hasta "un cavernícola puede hacerlo".
|
41
|
40
|
|
42
|
41
|
Como no existe un sistema oficial para medir las contraseñas, utilizaremos fórmulas creadas por el "passwordmeter" para evaluar la fortaleza general de una contraseña dada [1]. Te recomendamos que juegues un poco con la aplicación en http://passwordmeter.com para que entiendas cómo debe comportarse la aplicación que estarás implementando en esta experiencia de laboratorio. La fortaleza de la contraseña se cuantificará otorgando puntos por utilizar buenas técnicas de selección de contraseñas (como utilizar mezclas de símbolos y letras) y restando puntos por utilizar malos hábitos en las contraseñas (como utilizar solo letras minúsculas o símbolos consecutivos de un mismo tipo).
|
43
|
42
|
|
|
@@ -93,7 +92,7 @@ Lo que sigue son algunos detalles adicionales y ejemplos de los criterios para *
|
93
|
92
|
|
94
|
93
|
c. La puntuación para `801145555` sería $$0$$ porque contiene **solo** dígitos.
|
95
|
94
|
|
96
|
|
-5. **Símbolos:** la puntuación es $$6n$$ si la contraseña contiene $n$ símbolos. De otro modo la puntuación es $$0$$. Por ejemplo:
|
|
95
|
+5. **Símbolos:** la puntuación es $$6n$$ si la contraseña contiene $$n$$ símbolos. De otro modo la puntuación es $$0$$. Por ejemplo:
|
97
|
96
|
|
98
|
97
|
a. La puntuación para `"ab453"` sería $$0$$ porque no contiene símbolos.
|
99
|
98
|
|
|
@@ -246,7 +245,7 @@ Hay funciones pre-definidas que actualizan la interfaz gráfica. Para que la apl
|
246
|
245
|
void setCRITERIO(int count, int score) ;
|
247
|
246
|
```
|
248
|
247
|
|
249
|
|
- donde CRITERIO debe reemplazarse por el criterio evaluado. Observa que la función requiere dos argumentos: el **conteo**, que es la cantidad de caracteres que cumple con el criterio, y la **puntuación**, que es el cálculo que tu implementarás siguiendo las tablas de arriba. Por ejemplo:
|
|
248
|
+ donde CRITERIO debe reemplazarse por el criterio evaluado. Observa que la función requiere dos argumentos: el **conteo**, que es la cantidad de caracteres que cumple con el criterio, y la **puntuación**, que es el cálculo que tú implementarás siguiendo las tablas de arriba. Por ejemplo:
|
250
|
249
|
|
251
|
250
|
```
|
252
|
251
|
count = pass.length() ;
|