PROTOCOLO DE COMPOSIÇÃO DE PALAVRA-PASSE / REGISTO DE PARÂMETROS
Leia o gerador como um protocolo de composição de caracteres
Defina o comprimento e os grupos de caracteres selecionados no editor. Este registo liga esses parâmetros ao percurso de saída implementado, aos rótulos de pontuação e aos painéis React visíveis.
Abrir gerador de palavras-passe
- Controlo de comprimento: 8–64 · início 16
- Quatro grupos selecionáveis
- Saída, rótulos, lote e histórico
Registo parâmetro → saída
01 · COMPRIMENTO — Intervalo de uma unidade
O controlo de comprimento tem mínimo 8, máximo 64, passo 1 e começa em 16.
02 · GRUPOS — Quatro seleções independentes
Maiúsculas, minúsculas, dígitos e símbolos podem ser selecionados ou removidos separadamente.
03 · COMPOSIÇÃO — Entradas de grupo antes de preencher
O gerador coloca um caráter de cada grupo selecionado, preenche as posições restantes com os caracteres combinados e depois mistura o array de caracteres.
04 · INVÁLIDO — Sem saída numa seleção inválida
Sem grupo selecionado, ou com comprimento abaixo do número de grupos selecionados, o gerador devolve null e o editor mostra apenas o seu erro de seleção.
A sequência de composição implementada
Este é um registo do percurso de código, não um teste de aceitação para um serviço externo. Expõe a ordem de generateSecurePassword numa seleção válida.
1. Reunir grupos selecionados
A função reúne apenas as strings dos grupos selecionados. Uma lista vazia, ou um comprimento pedido menor do que essa lista, termina em null.
2. Colocar e preencher
Escolhe um caráter para cada grupo selecionado e depois continua a escolher da string de grupos concatenados até atingir o comprimento pedido.
3. Misturar o array
O array completo de caracteres é misturado antes de ser unido na saída mostrada.
Registo de grupos de caracteres
O editor expõe exatamente estas quatro strings de grupos. Os símbolos são listados como implementados, incluindo parênteses retos e pontuação.
- MAIÚSCULAS ABC
ABCDEFGHIJKLMNOPQRSTUVWXYZSelecionadas pela caixa de maiúsculas.
- MINÚSCULAS abc
abcdefghijklmnopqrstuvwxyzSelecionadas pela caixa de minúsculas.
- DÍGITOS 0–9
0123456789Selecionados pela caixa de números.
- SÍMBOLOS
!@#$%^&*()_+-=[]{}|;:,.<>?Selecionados pela caixa de símbolos.
Nota de implementação Web Crypto
A seleção de índices é um detalhe de implementação. O código usa crypto.getRandomValues com valores Uint32; um rótulo de resultado não afirma a adequação de uma saída.
- LIMITE UINT32
Para um tamanho de grupo, o código calcula o maior múltiplo desse tamanho abaixo de 2³².
- REJECTION SAMPLING
Pede novamente um valor Uint32 enquanto o valor estiver fora desse limite e depois toma valor módulo o tamanho do grupo.
- MISTURA DO ARRAY
O ciclo shuffle vai do índice final do array até 1 e troca o caráter atual por um índice obtido pelo mesmo seletor.
Estimativa de pontuação dos caracteres de saída
O rótulo é um estimador baseado apenas na saída mostrada. Não é uma avaliação de regras ou caso de utilização de um destino.
- COMPRIMENTO
+2 se o comprimento for pelo menos 12; caso contrário +1 se for pelo menos 8.
- CATEGORIAS
+1 por cada correspondência da saída com categorias de minúsculas, maiúsculas, dígitos e não alfanuméricos.
- RÓTULOS
Weak em 0–2; Medium em 3–4; Strong em 5; Very Strong em 6.
Painéis visíveis de estado de saída
Estes cartões descrevem as transições de estado do componente usadas pelo editor.
INICIAL + INDIVIDUAL — Um resultado inicial, depois um por ação
Na montagem inicial, useEffect aciona uma geração individual. O botão individual aciona-a novamente; um resultado devolvido torna-se a saída mostrada.
LOTE 1–20 — Lista separada de resultados de lote
O controlo de lote vai de 1 a 20 e começa em 5. Cada posição pedida chama o gerador separadamente; as entradas devolvidas ficam num estado de resultados de lote separado.
HISTÓRICO + CÓPIA — Até cinco resultados individuais recentes
Um resultado individual é colocado antes das quatro entradas anteriores do histórico. O botão de limpar esvazia este estado de interface de histórico do componente. Os controlos de cópia chamam navigator.clipboard.writeText para a entrada mostrada escolhida.
Notas de âmbito
- Esta página regista o comportamento atual do editor e não verifica uma saída segundo requisitos fora deste editor.
- O percurso de seleção inválida devolve null; o editor apresenta o seu erro de seleção em vez de uma saída.
- Resultados de lote e histórico individual são valores de estado React separados neste componente.
- O editor apresenta controlos de cópia. Não apresenta controlo de transferência ou exportação.
Continue com ferramentas próximas
Cada ferramenta ligada tem o seu próprio comportamento de entrada e saída.
- Gerador de código QR
Crie uma representação QR a partir de dados introduzidos compatíveis e inspecione a imagem devolvida.
- Encurtador de URL
Leia o registo de rota limitado para um destino HTTP ou HTTPS introduzido.
- Teste de velocidade de digitação
Use um editor separado para um resultado de digitação cronometrado.
Perguntas sobre o protocolo de composição
Que valores de comprimento o editor expõe?
O controlo de comprimento vai de 8 a 64 em passos de 1, com 16 como valor inicial.
O que acontece quando a seleção é inválida?
Quando não há grupo selecionado, ou o comprimento pedido é menor do que o número de grupos selecionados, generateSecurePassword devolve null. O editor mostra apenas o seu erro de seleção.
Como são atribuídos os rótulos de pontuação?
O estimador soma comprimento e categorias detetadas de minúsculas, maiúsculas, dígitos e não alfanuméricos para uma pontuação de 0 a 6. Mapeia 0–2 para Weak, 3–4 para Medium, 5 para Strong e 6 para Very Strong.
O que fazem os controlos de lote, histórico e cópia?
O lote usa um estado de resultados separado para 1–20 entradas pedidas. O histórico mantém o resultado individual atual e até quatro anteriores no estado do componente, e um controlo de cópia chama navigator.clipboard.writeText para a sua entrada.
Abrir os controlos de composição
Escolha comprimento e grupos no editor, depois inspecione a saída mostrada e o respetivo rótulo de pontuação baseado em caracteres.