howsecureismypassword / hsimp Archived

Maintenant, vous pouvez utiliser le compteur de force de mot de passe howsecureismypassword.net sur vos propres sites.

About

Plutôt que de simplement dire qu’un mot de passe est « faible » ou « fort », How Secure is My Password ? permet à vos utilisateurs de savoir combien de temps il faudrait à quelqu’un pour craquer leur mot de passe. Il vérifie également les 10 000 mots de passe les plus courants ainsi qu’un certain nombre d’autres vérifications (comme les chaînes répétées, les numéros de téléphone et les mots suivis de chiffres).

Autres versions

C’est la version JS vanilla du plugin. D’autres versions sont également disponibles :

  • Version jQuery : howsecureismypassword/jquery
  • Version WordPress : howsecureismypassword/wordpress

Installation

bower install hsimp

CSS

Copiez le fichier build/hsimp.css dans votre répertoire css et incluez-le dans votre document <head> :

<link rel="stylesheet" href="/css/hsimp.css">

JavaScript

Copier le fichier build/hsimp.min.js dans votre répertoire js et l’inclure en bas du document <body>:

<script src="/js/hsimp.min.js"></script><!-- Other scripts go here -->

Le fichier hsimp.min.js peut éventuellement être utilisé avec les chargeurs de modules AMD et Common JS en utilisant le nom de module hsimp. Si aucun chargeur de module n’est trouvé, une fonction globale hsimp sera mise à disposition.

Utilisation

La fonction hsimp prend deux arguments : un objet de configuration et un élément HTML <input>

hsimp({ options: { calculationsPerSecond: 1e10, // 10 billion, good: 31557600e3, // 1,000 years ok: 31557600 // 1 year }, outputTime: function (time, input) { console.log(time, input); }, outputChecks: function (checks, input) { console.log(checks, input); }}, document.getElementById("password"));

Configuration

L’objet de configuration supporte trois propriétés :

  • options : un objet d’options qui affectent les calculs
  • outputTime : une fonction à laquelle on transmet la durée qu’il faudrait pour craquer le mot de passe donné
  • outputChecks : une fonction à laquelle on transmet une liste de résultats de diverses vérifications

options

Couramment, il y a trois options supportées :

  • calculationsPerSecond : le nombre supposé de calculs par seconde qu’un craqueur pourrait faire (par défaut : 10e9 – 10 milliards)
  • good : le temps minimum (en secondes) qu’il faudrait pour craquer un « bon » (vert) mot de passe (par défaut : 31557600e6 – 1 million d’années)
  • ok : le temps minimum (en secondes) que prendrait un mot de passe « correct » (orange) pour être craqué (par défaut : 31557600 – 1 an)

outputTime

On passe à la fonction outputTime deux variables : le temps qu’il faudrait pour craquer le mot de passe (sous forme de chaîne lisible par l’homme) et (éventuellement) l’entrée à laquelle elle se réfère.

var renderTime = function (time, input) { document.getElementById("password-strength").innerHTML = time;}hsimp({ outputTime: renderTime }, document.getElementById("password"));

outputChecks

On passe à la fonction outputChecks deux variables : un tableau de résultats de vérification et (facultativement) l’entrée à laquelle elle se réfère.

Chaque résultat de contrôle est un objet avec trois propriétés :

  • name : le nom/titre du contrôle
  • message : un texte explicatif
  • level : le niveau de sévérité (insecure, warning, notice, achievement)
{ name: "Length: Very Short", message: "Your password is very short. The longer a password is the more secure it will be.", level: "warning"}

Langage

Vous pouvez mettre à jour les fichiers de langue en utilisant les méthodes suivantes qui acceptent chacune un objet:

hsimp.setDictionary(lang)

Définit les valeurs de « instantanément » et « pour toujours ». Voir https://github.com/howsecureismypassword/modules-main/blob/develop/dictionary.json

hsimp.setPeriodDictionary(lang)

Définit les périodes (par exemple, secondes, jours, années, etc.). Voir https://github.com/howsecureismypassword/modules-period/blob/develop/period-dictionary.json

hsimp.setNamedNumberDictionary(lang)

Définit les noms des nombres. Voir https://github.com/howsecureismypassword/modules-named-number/blob/develop/named-number-dictionary.json

hsimp.setCheckerDictionary(lang)

Met en place le libellé des différents contrôles. Voir https://github.com/howsecureismypassword/modules-checker/blob/develop/checker-dictionary.json

Currying

La fonction hsimp supporte le currying. Cela signifie que vous pouvez définir les options une fois et ensuite utiliser la fonction retournée pour configurer plus d’une entrée :

var attachHSIMP = hsimp({ // shared options here});attachHSIMP(document.getElementById("input-1"));attachHSIMP(document.getElementById("input-2"));

Licence

La licence MIT (MIT)

Copyright (c) 2015, Mark Nicholas Wales / Small Hadron Collider

La permission est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « logiciel »), de traiter le logiciel sans restriction, y compris, sans limitation, le droit d’utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, d’accorder une sous-licence et/ou de vendre des copies du logiciel, et de permettre aux personnes à qui le logiciel est fourni de le faire, sous réserve des conditions suivantes :

L’avis de copyright ci-dessus et cet avis de permission doivent être inclus dans toutes les copies ou parties substantielles du logiciel.

LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D’AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S’Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D’ADÉQUATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS, LES AUTEURS OU LES DÉTENTEURS DE DROITS D’AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DE TOUT DOMMAGE OU DE TOUTE AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D’UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, DE OU EN RELATION AVEC LE LOGICIEL OU L’UTILISATION OU D’AUTRES TRANSACTIONS DANS LE LOGICIEL.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.