Maison >interface Web >js tutoriel >Générateur de mots de passe sans état : gestion des mots de passe sécurisée et sans tracas

Générateur de mots de passe sans état : gestion des mots de passe sécurisée et sans tracas

Patricia Arquette
Patricia Arquetteoriginal
2024-12-11 16:58:12258parcourir

Gérer plusieurs mots de passe sur différentes plateformes peut être intimidant. Le générateur de mot de passe sans état simplifie ce processus en utilisant un algorithme de mot de passe principal sécurisé et sans état. Cet outil élimine le besoin de stocker des mots de passe tout en garantissant une sécurité robuste. Il est disponible pour installation sur le Chrome Web Store et fonctionne entièrement hors ligne pour une confidentialité maximale.

Par exemple : Générer des mots de passe pour Facebook

Stateless Password Generator: Secure and Hassle-Free Password Management

Principales fonctionnalités

  1. Fonctionnement sans état : Aucune donnée n'est stockée et les mots de passe sont générés dynamiquement à l'aide de votre mot de passe principal.
  2. Préférences personnalisables : ajustez les paramètres du mot de passe, y compris les exigences en matière de longueur et de caractères (majuscules, minuscules, chiffres, caractères spéciaux).
  3. Fonctionnalité hors ligne : aucune connexion externe n'est nécessaire, ce qui améliore la sécurité.
  4. Mot de passe principal unique : mémorisez un mot de passe principal pour tous les comptes, simplifiant ainsi la gestion des mots de passe.

Comment ça marche

Le générateur de mots de passe sans état utilise une fonction de hachage cryptographique pour générer des mots de passe uniques pour chaque site Web. L'algorithme garantit que les mots de passe générés respectent les contraintes définies par l'utilisateur, telles que les types de caractères requis et la longueur maximale.

Algorithme de base

Voici un aperçu du processus de génération de mot de passe :

  1. Entrée utilisateur :
  • Nom de domaine
  • Nom d'utilisateur
  • Mot de passe principal
  • Préférences supplémentaires (par exemple, longueur du mot de passe, types de caractères requis)
  1. Hashing : Les entrées sont combinées en une seule chaîne et hachées à l'aide de l'algorithme SHA-256. Cela garantit une valeur de hachage unique et déterministe pour chaque ensemble d'entrées.

  2. Construction de mot de passe :

  • Les règles de caractères requises sont extraites des préférences de l'utilisateur.
  • La sortie hachée est mappée sur des caractères provenant d'ensembles définis (par exemple, majuscules, minuscules, chiffres, caractères spéciaux).
  • Le mot de passe obtenu satisfait à toutes les contraintes et est tronqué à la longueur spécifiée.

Points saillants du code

Vous trouverez ci-dessous les fonctions clés qui alimentent le générateur de mots de passe sans état :

Définir des jeux de caractères

const upperChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const lowerChars = 'abcdefghijklmnopqrstuvwxyz';
const numberChars = '0123456789';
const specialChars = '!@#$%^&*()';
const CHARACTER_SETS = {
    uppercase: upperChars,
    lowercase: lowerChars,
    number: numberChars,
    special: specialChars,
};

Logique de hachage

async function hashPassword(userData) {
    const combinedString = userData.domain + userData.username + userData.masterPassword + userData.pwVersion;
    const encoder = new TextEncoder();
    const passwordHash = await crypto.subtle.digest('SHA-256', encoder.encode(combinedString));
    const passwordHashArray = Array.from(new Uint8Array(passwordHash));

    const allRequiredChars = getRequireChars(getRequireRules(
        userData.isRequiredUpperCase,
        userData.isRequiredLowerCase,
        userData.isRequiredNumber,
        userData.isRequiredSpecial
    ));

    let password = "";
    for (let i = 0; i < userData.maxLength; i++) {
        let byte = passwordHashArray[i % passwordHashArray.length];
        password += allRequiredChars[byte % allRequiredChars.length];
    }
    return password;
}

Mappage des règles de caractère

function getRequireRules(isRequiredUpperCase, isRequiredLowerCase, isRequiredNumber, isRequiredSpecial) {
    let rules = [];
    if (isRequiredUpperCase) rules.push('uppercase');
    if (isRequiredLowerCase) rules.push('lowercase');
    if (isRequiredNumber) rules.push('number');
    if (isRequiredSpecial) rules.push('special');
    return rules;
}

Avantages

  • Sécurité renforcée : Les mots de passe sont générés localement et ne sont jamais transmis ni stockés.
  • Commodité : mémorisez uniquement votre mot de passe principal pour accéder à tous les mots de passe générés.
  • Personnalisable : personnalisez la génération de mots de passe pour répondre aux exigences de sécurité strictes.

Conclusion

Le générateur de mots de passe sans état est un outil puissant pour gérer les mots de passe de manière sécurisée et efficace. En tirant parti du hachage cryptographique et des algorithmes sans état, il offre une protection robuste sans compromettre la convivialité. Installez-le depuis le Chrome Web Store !

Veuillez consulter le GitHub pour plus de détails.

Vous appréciez le projet ? N'oubliez pas de le mettre en vedette ⭐ !

Stateless Password Generator: Secure and Hassle-Free Password Management

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn