diff --git a/.obsidian/graph.json b/.obsidian/graph.json index c908be1..cdc7f09 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -83,7 +83,7 @@ "textFadeMultiplier": 0, "nodeSizeMultiplier": 1, "lineSizeMultiplier": 1, - "collapse-forces": true, + "collapse-forces": false, "centerStrength": 0.518713248970312, "repelStrength": 10, "linkStrength": 1, diff --git a/.obsidian/plugins/languagetool/data.json b/.obsidian/plugins/languagetool/data.json index ccb2293..cffc5f0 100644 --- a/.obsidian/plugins/languagetool/data.json +++ b/.obsidian/plugins/languagetool/data.json @@ -12,6 +12,7 @@ "bash", "Bash", "Git", + "regex", "subshells" ], "syncDictionary": false, diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 640914c..aceef35 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,15 +13,30 @@ "state": { "type": "markdown", "state": { - "file": "BDD/SQL/Tipos de datos.md", + "file": "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Funciones puras.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Tipos de datos" + "title": "Funciones puras" + } + }, + { + "id": "d8e530e20700ccef", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Extra" } } - ] + ], + "currentTab": 1 } ], "direction": "vertical" @@ -74,8 +89,7 @@ "title": "Marcadores" } } - ], - "currentTab": 1 + ] } ], "direction": "horizontal", @@ -169,12 +183,12 @@ "state": { "type": "outgoing-link", "state": { - "file": "BDD/SQL/Tipos de datos.md", + "file": "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md", "linksCollapsed": false, "unlinkedCollapsed": true }, "icon": "links-going-out", - "title": "Enlaces salientes de Tipos de datos" + "title": "Enlaces salientes de Extra" } }, { @@ -193,7 +207,7 @@ { "id": "7ac2f57f0d4937ed", "type": "tabs", - "dimension": 45.86864406779661, + "dimension": 45.868644067796616, "children": [ { "id": "f3844ce27366e01c", @@ -225,6 +239,18 @@ }, "active": "e615f9321ff830be", "lastOpenFiles": [ + "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md", + "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md", + "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/validador_de_contraseñas.sh", + "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/verificador-de-", + "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Funciones puras.md", + "BDD/SQL/Tipos de datos.md", + "BDD/SQL/SQL.md", + "BDD/SQL/Sintaxis (Keywords).md", + "BDD/SQL/Procedimientos almacenados.md", + "BDD/SQL/Lenguaje de Manupulación de Datos (DML).md", + "BDD/SQL/Lenguaje de definición de datos (DDL).md", + "BDD/SQL/Importación y exportación de base de datos.md", "BDD/SQL/Diario/Clase 4 de diciembre.md", "Programación/JavaScript/LDM-JavaScript.md", "Programación/HTML y CSS/CSS/LDM - CSS.md", @@ -232,34 +258,22 @@ "Programación/HTML y CSS/CSS", "Programación/HTML y CSS/HTML/LDM - HTML.md", "Programación/PHP/M9-PHP.md", - "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Expansión de parámetros.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Arrays asociativos.md", - "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Funciones puras.md", - "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md", "Documentación personal/Mecanica de Unix/Mecánica Unix - Manejo de la shell.md", "Programación/Python/Python.md", "Servidores/M5/M5 - ASIX.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Patrones de diseño en Bash.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Procesos hijos y paralelismo.md", "conflict-files-obsidian-git.md", - "BDD/SQL/SQL.md", "Programación/PHP/PHP", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Trampas (traps).md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Señales.md", - "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Subshells.md", - "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Seguridad en scripts.md", - "README.md", - "BDD/SQL/Importación y exportación de base de datos.md", - "BDD/SQL/Lenguaje de Manupulación de Datos (DML).md", "Documentación personal/Mecanica de Unix/Sin nombre", - "BDD/SQL/Lenguaje de definición de datos (DDL).md", "Servidores/M5/Actividades", "Servidores/M5/Actividades/RA2", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/calculadora_modular.sh", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios", - "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras", - "Documentación personal/Mecanica de Unix/2. awk-sed-grep", "Documentación personal/Seguridad-Informatica/Vista General 1.canvas", "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/software/specops.svg", "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/software/satan.png", diff --git a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md index 4dd3c46..ea4bde9 100644 --- a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md +++ b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md @@ -77,4 +77,47 @@ done select opcion in Start Stop Exit; do echo "Elegiste la opcion $opcion" done -``` \ No newline at end of file +``` + + + + +--- +## Contador de longitud +```Shell +validador() { + local passwd=$1 + local long=${#passwd} # Para leer longitud de un dato, se usa ${#variable} + if [[ "$long" -gt 8 ]]; then + echo "PWD_GT_8" + else + echo "PWD_LT_8" + fi +} +``` + + +--- +### Verificación de mayúsculas, minúsculas, números y caracteres especiales + +Se utiliza el comparador de valores regex (`=~`) en conjunto con los valores regex: + +#### ¿Minúscula? +```Shell +[[ "Hola123" =~ [a-z] ]] # true +``` + +##### ¿Mayúscula? +```Shell +[[ "Hola123" =~ [A-Z] ]] # true +``` + +##### ¿Números? +```Shell +[[ "abc123def" =~ [0-9] ]] # true +``` + +###### ¿Caracteres especiales? +```Shell +[[ "asd1!213das" =~ [^a-zA-Z0-9] ]] # true +``` diff --git a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md index 95e6bab..6fcd2a0 100644 --- a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md +++ b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md @@ -72,4 +72,15 @@ Bibliografía Web: --- -# Validador de contraseñas +# 2. Validador de contraseñas +Entrada: Una contraseña. +Objetivo: Que detecte la longitud y cantidad de caracteres especiales y dará el diagnóstico `weak`, `mid` y `strong`. + +```Shell +#!/bin/bash +# Funciones Puras +``` + +Bibliografía Web: +- [Conversión de mayúsculas a minúsculas](https://es.stackoverflow.com/questions/346567/cómo-convierto-un-texto-a-mayúsculas-o-minúsculas-en-bash-zsh-o-osx) +- \ No newline at end of file diff --git a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/validador_de_contraseñas.sh b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/validador_de_contraseñas.sh new file mode 100755 index 0000000..e6ed6c0 --- /dev/null +++ b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/validador_de_contraseñas.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Funciones Puras +# En caso de muchos condicionales +# Recurrir a negaciones +longitud() { + local passwd=$1 + local long=${#passwd} + if [[ "$long" -gt 8 ]]; then + echo "PWD_GT_8" + else + echo "PWD_LT_8" + fi +} +minusculas() { + local passwd=$1 + if [[ "$passwd" =~ [a-z] ]]; then + echo "MINLETTERS" + else + echo "NO_MINLETTERS" + fi +} +mayusculas () { + local passwd=$1 + if [["$passwd" =~ [A-Z] ]]; then + echo "MAYLETTERS" + else + echo "NO_MAYLETTERS" + fi +} + + + +read -p "Introduce una contraseña: " a + +resultado=$(longitud "$a") + +echo "$resultado"