Files
Notas-Asir/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/.validador_de_contraseñas.sh.swp

8 lines
12 KiB
Plaintext
Raw Normal View History

2025-12-14 01:36:11 +01:00
b0VIM 9.1>i<00><00><>carpiBodoqueF~carpi/Documentos/Notas-Asir/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/validador_de_contraseñas.shutf-8 3210#"! U
<00><00><00><00><00><00>zxhT. <00> <00> <00> <00> <00> <00> <00> <00> r k i X D <00> w b Y A : 8 7 (  <00> <00> <00>  W (  <00>
<00>
<00>
<00>
<00>
e
| # <00><00><00><00>wj@4+<00><00><00><00><00><00>^]\eeecho "Su contraseña es $resultado"resulecho "Su contraseña es echo "Suecho "Su contraseña es $resultado"resultado=$(validador "$a" )read -p "Introduce una contraseña: " a} fi echo "Strong" else echo "Mid" elif [[ "$porcentaje" -lt 71 ]]; then echo "Weak" if [[ "$porcentaje" -lt 41 ]]; then ((porcentaje=puntuacion * 100 / totcriterios)) done fi #Si la puntuacion vale 0, bash intenta ejecutar ((0++)). #Update: EUREKA! Al poner $, bash expande el valor antes de la operacion aritmetica. ((puntuacion++)) # Esto tiene un error de sintaxis aritmetica: Se esperaba un operando (el elemento de error es "+"). El error sale cuando no se introduce uno de los valores anteriores, como por ejemplo, no poner ningun simbolo. if [[ $i = "PWD_GT_8" || $i = "MINLETTERS" || $i = "MAYLETTERS" || $i = "NUMBERS" || $i = "ECARACTERS" ]]; then for i in "${res[@]}"; do local totcriterios=5 local puntuacion=0 res=("$long" "$min" "$may" "$num" "$carE") local carE=$(caracteresE "$passwd") local num=$(numeros "$passwd") local may=$(mayusculas "$passwd") local min=$(minusculas "$passwd") local long=$(longitud "$passwd") local passwd=$1validador () {} fi echo "NO_ECARACTERS" else echo "ECARACTERS" #caracter especial, este no estará en las tablas de mayuscula, minuscula ni numeros. if [[ "$passwd" =~ [^a-zA-Z0-9] ]]; then #Caso curioso: Se recurre a la negacion, ya que si existe un local passwd=$1caracteresE () {} fi echo "NO_NUMBERS" else echo "NUMBERS" if [[ "$passwd" =~ [0-9] ]]; then local passwd=$1numeros () {} fi echo "NO_MAYLETTERS" else echo "MAYLETTERS" if [[ "$passwd" =~ [A-Z] ]]; then local passwd=$1mayusculas () {} fi echo "NO_MINLETTERS" else echo "MINLETTERS" if [[ "$passwd" =~ [a-z] ]]; then local passwd=$1minusculas() {} fi echo "PWD_LT_8" else echo "PWD_GT_8" if [[ "$long" -gt 8 ]]; then local long=${#passwd} local passwd=$1longitud() {# Recurrir a negaciones# En caso de muchos condicionales# Funciones Puras#!/bin/bash