Buscar pacotes, repositórios e categorias de apps

Capa de password_strength_checker
Detalhes do pacotev1.3.2

password_strength_checker

Gere senhas seguras, verifique senhas expostas, obtenha feedback visual sobre a força ou valide formulários com força mínima de senha exigida.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
8,5 mil
Curtidas
55
Pontos Pub
150

Instalar pacote

flutter pub add password_strength_checker

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que ajuda a gerar senhas seguras, validar sua força e verificar se foram expostas em vazamentos de dados. Oferece feedback visual em tempo real sobre a força da senha e suporta validação de formulários com requisitos mínimos de força personalizáveis. Ideal para aplicações que exigem autenticação robusta, integra-se perfeitamente a campos de entrada de senha em múltiplas plataformas.

Casos de uso

  • Validação de formulário com força mínima
  • Feedback de força de senha em tempo real
  • Verificando senhas expostas
  • Geração segura de senhas
  • Melhoria no fluxo de autenticação
  • Campos de senha multiplataforma

Principais recursos

  • indicadores de força visual
  • Detecção de senha exposta
  • Limites de força personalizáveis
  • Utilitário de geração de senhas
  • Integração com validadores de formulário
  • Suporte multiplataforma

Indicado para

  • Telas de autenticação
  • Formulários de registro de usuário
  • Aplicativos focados em segurança
  • Ferramentas de gerenciamento de senhas
  • Equipes de desenvolvedores priorizando segurança
  • Aplicativos que exigem conformidade com políticas de senha

Considerações

  • Requer acesso à internet para verificações de vazamento
  • Pode aumentar ligeiramente o tamanho do aplicativo
  • Depende de APIs externas para pesquisa de exposição
  • Não adequado para ambientes somente offline
  • Impacto no desempenho durante a validação em tempo real
  • Necessita de tratamento adequado de erros para falhas na API

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

password_strength_checker

License Pub Version Pub Likes Pub Points Pub Monthly Downloads GitHub code size in bytes GitHub Repo stars GitHub issues GitHub release (latest by date) GitHub top language CI

Generate secure passwords, check for exposed passwords, get visual feedback for password strength or get form validation with a minimum password strength required.

Check the strength of the password in a visual way, with an animation when the strength changes according to the settings given by the user. Use it also inside a Form to get form validation!

Features

  • Check for exposed common password using the commonDictionary, a map with 10,000 leaked passwords!
  • Use the PasswordStrengthChecker to have a visual feedback.
  • Use the PasswordStrengthFormChecker to have a built-in TextFormField inside the widget and get form validation using a minimumStrengthRequired.
  • Use the PasswordGenerator class to generate a secure random password based on the input configurations (PasswordGeneratorConfiguration).
  • Create your custom strength to create your own rules or use the PasswordStrength default enum (see Custom Strength).

Demo

Demo Form Gif Demo Gif Demo Generator Gif

Getting started

PasswordStrengthChecker

You can use the PasswordStrengthChecker to only have a visual feedback, for example:

final passNotifier = ValueNotifier<PasswordStrength?>(null);
// ...
PasswordStrengthChecker(
  strength: passNotifier,
),

See the full example here.

PasswordStrengthFormChecker

You can use the PasswordStrengthFormChecker to have a built-in TextFormField inside the widget and get form validation using a minimumStrengthRequired. For example:

PasswordStrengthFormChecker(
  minimumStrengthRequired: PasswordStrength.secure,
  onChanged: (password, notifier) {
    notifier.value = PasswordStrength.calculate(text: password);
  },
),

See the full example here.

PasswordGenerator

You can use the PasswordGeneratorclass to generate a secure random password based on the configurations. For example:

final config = PasswordGeneratorConfiguration(
  length: 32,
  minUppercase: 8,
  minSpecialChars: 8,
  // ...
);

final passwordGenerator = PasswordGenerator.fromConfig(
  configuration: config,
);

final password = passwordGenerator.generate();

See the full example here.

Custom Strength

You can use the default PasswordStrength enum to set the strength of the password, or you can create your own enum that implements PasswordStrengthItem and use it. For example:

enum CustomPassStrength implements PasswordStrengthItem {
  weak,
  medium,
  strong;

  @override
  Color get statusColor => switch (this) {
      CustomPassStrength.weak => Colors.red,
      CustomPassStrength.medium => Colors.orange,
      CustomPassStrength.strong => Colors.green,
    };

  @override
  Widget? get statusWidget => switch (this) {
      CustomPassStrength.weak => const Text('Weak'),
      CustomPassStrength.medium => const Text('Medium'),
      CustomPassStrength.strong => const Text('Strong'),
    };

  @override
  double get widthPerc => switch (this) {
      CustomPassStrength.weak => 0.15,
      CustomPassStrength.medium => 0.4,
      CustomPassStrength.strong => 0.75,
    };

  static CustomPassStrength? calculate({required String text}) {
    // Implement your custom logic here
    if (text.isEmpty) {
      return null;
    }
    // Use the [commonDictionary] to see if a password
    // is in 10,000 common exposed password list.
    if (commonDictionary[text] == true) {
      return CustomPassStrength.weak;
    }
    if (text.length < 6) {
      return CustomPassStrength.weak;
    } else if (text.length < 10) {
      return CustomPassStrength.medium;
    } else {
      return CustomPassStrength.strong;
    }
  }
}

Contribution

The project is open source and you can contribute to it here -> repository link

  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

Contributors


Made with ❤️ from dariowskii

Categorias

Repositório-fonte

Projetos que usam este pacote