PROTOCOLO DE COMPOSICIÓN DE CONTRASEÑAS / LIBRO DE PARÁMETROS

Lee el generador como un protocolo de composición de caracteres

Define la longitud y los grupos de caracteres seleccionados en el editor. Este registro relaciona esos parámetros con la ruta de salida implementada, las etiquetas de puntuación y los paneles visibles de estado React.

Abrir generador de contraseñas

Libro parámetro → salida

01 · LONGITUD — Rango de una unidad

El control de longitud tiene mínimo 8, máximo 64, paso 1 y comienza en 16.

02 · GRUPOS — Cuatro selecciones independientes

Mayúsculas, minúsculas, dígitos y símbolos pueden seleccionarse o quitarse por separado.

03 · COMPOSICIÓN — Entradas de grupo antes de rellenar

El generador coloca un carácter de cada grupo seleccionado, rellena las posiciones restantes con los caracteres combinados y después mezcla el array de caracteres.

04 · NO VÁLIDO — Sin salida ante una selección no válida

Sin grupo seleccionado, o con una longitud inferior al número de grupos seleccionados, el generador devuelve null y el editor muestra solo su error de selección.

La secuencia de composición implementada

Es un registro de la ruta de código, no una prueba de aceptación para un servicio externo. Expone el orden de generateSecurePassword con una selección válida.

  1. 1. Reunir grupos seleccionados

    La función reúne solo las cadenas de los grupos seleccionados. Una lista vacía, o una longitud pedida menor que esa lista, termina con null.

  2. 2. Colocar y rellenar

    Elige un carácter para cada grupo seleccionado y después sigue eligiendo de la cadena de grupos concatenada hasta alcanzar la longitud pedida.

  3. 3. Mezclar el array

    El array de caracteres completo se mezcla antes de unirse en la salida mostrada.

Registro de grupos de caracteres

El editor expone exactamente estas cuatro cadenas de grupo. Los símbolos se enumeran como están implementados, incluidos corchetes y puntuación.

  • MAYÚSCULAS ABC

    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    Se selecciona con la casilla de mayúsculas.

  • MINÚSCULAS abc

    abcdefghijklmnopqrstuvwxyz

    Se selecciona con la casilla de minúsculas.

  • DÍGITOS 0–9

    0123456789

    Se selecciona con la casilla de números.

  • SÍMBOLOS

    !@#$%^&*()_+-=[]{}|;:,.<>?

    Se selecciona con la casilla de símbolos.

Nota de implementación Web Crypto

La selección de índices es un detalle de implementación. El código usa crypto.getRandomValues con valores Uint32; una etiqueta de resultado no afirma la idoneidad de una salida.

  • LÍMITE UINT32

    Para un tamaño de grupo, el código calcula el múltiplo mayor de ese tamaño por debajo de 2³².

  • REJECTION SAMPLING

    Vuelve a solicitar un valor Uint32 mientras esté fuera de ese límite y luego toma valor módulo el tamaño del grupo.

  • SHUFFLE DEL ARRAY

    El bucle shuffle recorre desde el índice final del array hasta 1 e intercambia el carácter actual con un índice obtenido mediante el mismo selector.

Estimación de puntuación por caracteres de salida

La etiqueta es un estimador basado solo en la salida mostrada. No es una valoración de reglas o caso de uso de un destino.

  • LONGITUD

    +2 si la longitud es al menos 12; en otro caso +1 si es al menos 8.

  • CATEGORÍAS

    +1 por cada coincidencia de la salida con categorías de minúsculas, mayúsculas, dígitos y no alfanuméricos.

  • ETIQUETAS

    Weak en 0–2; Medium en 3–4; Strong en 5; Very Strong en 6.

Paneles visibles de estado de salida

Estas tarjetas describen las transiciones de estado del componente usadas por el editor.

INICIAL + INDIVIDUAL — Un resultado inicial y después uno por acción

En el montaje inicial, useEffect activa una generación individual. El botón individual la activa otra vez; un resultado devuelto se convierte en la salida mostrada.

LOTE 1–20 — Lista independiente de resultados por lote

El control masivo va de 1 a 20 y empieza en 5. Cada posición solicitada llama al generador por separado; las entradas devueltas se mantienen en un estado de resultados masivos independiente.

HISTORIAL + COPIA — Hasta cinco resultados individuales recientes

Un resultado individual se coloca antes de las cuatro entradas anteriores del historial. El botón de limpiar vacía ese estado de interfaz de historial del componente. Los controles de copia llaman a navigator.clipboard.writeText para la entrada mostrada elegida.

Notas de alcance

  • Esta página registra el comportamiento actual del editor y no comprueba un resultado frente a requisitos fuera de este editor.
  • La ruta de selección no válida devuelve null; el editor presenta su error de selección en lugar de una salida.
  • Los resultados masivos y el historial individual son valores de estado React separados en este componente.
  • El editor presenta controles de copia. No presenta un control de descarga ni exportación.

Continúa con herramientas próximas

Cada herramienta enlazada tiene su propio comportamiento de entrada y salida.

Preguntas sobre el protocolo de composición

¿Qué valores de longitud expone el editor?

El control de longitud va de 8 a 64 en pasos de 1 y su valor inicial es 16.

¿Qué ocurre cuando la selección no es válida?

Cuando no hay ningún grupo seleccionado, o la longitud solicitada es menor que el número de grupos seleccionados, generateSecurePassword devuelve null. El editor muestra solo su error de selección.

¿Cómo se asignan las etiquetas de puntuación?

El estimador suma longitud y categorías detectadas de minúsculas, mayúsculas, dígitos y no alfanuméricos para una puntuación de 0 a 6. Asigna 0–2 a Weak, 3–4 a Medium, 5 a Strong y 6 a Very Strong.

¿Qué hacen los controles masivo, historial y copia?

El lote usa un estado de resultados separado para 1–20 entradas solicitadas. El historial conserva el resultado individual actual más hasta cuatro anteriores en estado del componente, y un control de copia llama a navigator.clipboard.writeText para su entrada.

Abre los controles de composición

Elige longitud y grupos en el editor, y después inspecciona la salida mostrada y su etiqueta de puntuación basada en caracteres.

Abrir generador de contraseñas