Question

J'ai besoin de générer des mots de passe, je veux éviter de caractères qui peuvent être confondus les uns les autres.Est-il définitif de la liste des personnages que je devrais éviter?ma liste est

il10o8B3Evu![]{}

Existe-il d'autres paires de caractères qui sont faciles à confondre?pour les caractères spéciaux, je vais me limiter à ceux qui, sous le numéro de touches, même si je sais que cela diffère selon vos claviers nationalité!

En tant que coureur question, je voudrais que mes mots de passe pour être " wordlike'do vous préférez utiliser un algorithme pour qui?

Merci :)

Était-ce utile?

La solution

Voici les jeux de caractères de Steve Gibson utilise pour son "Parfait De Papier Le Mot De Passe" système.Ils sont des "caractères afin de permettre" plutôt que de "caractères à éviter", mais ils semblent assez raisonnables pour ce que vous voulez:

Un ensemble standard de 64 caractères

!#%+23456789:=?@ABCDEFGHJKLMNPRS
TUVWXYZabcdefghijkmnopqrstuvwxyz

Un plus grand ensemble de 88 caractères

!"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHJKLMNO
PRSTUVWXYZ[\]^_abcdefghijkmnopqrstuvwxyz{|}~

Pour les mots de passe prononçables, je ne suis pas familier avec les algorithmes, mais vous voudrez peut-être consulter APG et pwgen comme un point de départ.

Autres conseils

Ma méthode préférée est d'obtenir une liste de mots de 3, 4 et 5 lettres.Puis sélectionner au moins 2 de ces, et place de façon aléatoire un nombre à 2 chiffres ou un symbole spécial (%&*@#$) entre chaque mot.Si vous le désirez, vous pouvez miser jusqu'à un personnage par mot au hasard.

En fonction de vos exigences de résistance, vous vous retrouvez avec facile à retenir et à communiquer les mots de passe, comme:

  • citron%bureau
  • papier&boy32hat

Gardez à l'esprit de vous recevoir à l'occasion d'intéressant ou inappropriée des combinaisons de mots (je vais vous laisser utiliser votre imagination).J'ai l'habitude d'avoir un bouton permettant la génération d'un nouveau mot de passe si celui présenté n'est pas aimée.

En règle générale, l'utilisation des symboles que les gens souvent connaître le nom.Sur une US Standard clavier je voudrais éviter de ~`/\^

Je suppose que cela a plus répondu à votre coureur question que votre question principale ...

Bonne chance!

Lire Le Choix Des Mots De Passe Sécurisés.

Une information intéressante à partir de là:Pour plus sécurisé des mots de passe, assurez-vous que des chiffres et des caractères spéciaux apparaissent dans le milieu.Programmes de craquage de vérifier pour eux au début et se termine plus tôt.

Pour ajouter à la réponse de Jim vous pouvez également utiliser la liste de mots et de façon aléatoire remplacer certains caractères par des symboles (un @ pour l'Un, un 0 (zéro) pour un " O " ou un 5 pour un S) et/ou supprimer les voyelles des mots.

  • lmn%Bureau
  • p@per&b0y32H@t

Encore lisible par l'homme.

Comme autre option, vous pouvez utiliser un monospace/terminal de police de messagerie pour l'impression des mots de passe.Caractères similaires devraient être beaucoup plus à distinguer de cette façon.

Pour un client international il y a plusieurs années, j'ai eu pour générer de l'aléatoire, des mots de passe sécurisés qui ont ensuite été publipostage dans les documents par mon client et envoyé par courrier postal adressé à des destinataires dans 40 pays.Ne sachant pas ce caractère a été à être utilisé dans les documents, j'ai utilisé une liste de caractères comme le Steve Gibson De 64 caractères ensemble pour éliminer la confusion entre des glyphes.

Pour faire de la résultante des mots de passe prononçables et donc faciles à retenir, je l'ai couplé les consonnes et les voyelles, avec quelques consonne bigrammes (sh, th, wh, etc.) ajouté au mélange.

Pour réduire les risques de inappropriés ou offensants mots générés (en anglais ou dans les destinataires langues), j'ai des courses limitées consécutives de caractères alphabétiques à deux, avec des chiffres ou des caractères de ponctuation entre le quartier:

Es4tU$sA6
wH@cY8Go2

En regardant en arrière sur ma méthode maintenant, je me rends compte qu'il y avait de la place pour l'amélioration dans l'inadéquation de l'algorithme.En utilisant seulement les règles ci-dessus, certains mots offensants sont possibles maintenant que certains chiffres et signes de ponctuation sont remplacés par des lettres.

Pour le mot de passe en clair, j'ai récemment utilisé un script PHP très similaire à celui ci-dessous.Il a bien fonctionné.Accordé, le mot de passe ne sont pas va être incroyablement sûr (car elles sont sujettes à des attaques par dictionnaire), mais pour memorisable, ou au moins lisible, les mots de passe, il fonctionne bien.Cependant, cette fonction ne devrait pas être utilisé comme tel, c'est plus pour l'illustration qu'autre chose.

function generatePassword($syllables = 2, $use_prefix = true)
{

    // Define function unless it is already exists
    if (!function_exists('arr'))
    {
        // This function returns random array element
        function arr(&$arr)
        {
            return $arr[rand(0, sizeof($arr)-1)];
        }
    }

    // Random prefixes
    $prefix = array('aero', 'anti', 'auto', 'bi', 'bio',
                    'cine', 'deca', 'demo', 'dyna', 'eco',
                    'ergo', 'geo', 'gyno', 'hypo', 'kilo',
                    'mega', 'tera', 'mini', 'nano', 'duo',
                    'an', 'arch', 'auto', 'be', 'co',
                    'counter', 'de', 'dis', 'ex', 'fore',
                    'in', 'infra', 'inter', 'mal', 
                    'mis', 'neo', 'non', 'out', 'pan',
                    'post', 'pre', 'pseudo', 'semi',
                    'super', 'trans', 'twi', 'vice');

    // Random suffixes
    $suffix = array('dom', 'ity', 'ment', 'sion', 'ness',
                    'ence', 'er', 'ist', 'tion', 'or',
                    'ance', 'ive', 'en', 'ic', 'al',
                    'able', 'y', 'ous', 'ful', 'less',
                    'ise', 'ize', 'ate', 'ify', 'fy', 'ly'); 

    // Vowel sounds 
    $vowels = array('a', 'o', 'e', 'i', 'y', 'u', 'ou', 'oo', 'ae', 'ea', 'ie'); 

    // Consonants 
    $consonants = array('w', 'r', 't', 'p', 's', 'd', 'f', 'g', 'h', 'j', 
                        'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'qu');

    $password = $use_prefix?arr($prefix):'';
    $password_suffix = arr($suffix);

    for($i=0; $i<$syllables; $i++)
    {
        // selecting random consonant
        $doubles = array('n', 'm', 't', 's');
        $c = arr($consonants);
        if (in_array($c, $doubles)&&($i!=0)) { // maybe double it
            if (rand(0, 2) == 1) // 33% probability
                $c .= $c;
        }
        $password .= $c;
        //

        // selecting random vowel
        $password .= arr($vowels);

        if ($i == $syllables - 1) // if suffix begin with vovel
            if (in_array($password_suffix[0], $vowels)) // add one more consonant 
                $password .= arr($consonants);

    }

    // selecting random suffix
    $password .= $password_suffix;

    return $password;
}

Dans mon (génie électrique, technophile) graduate school, tous les comptes d'ordinateur ont été initialisés avec des mots de passe qui, je suppose, ont été générés par un standard de linux utilitaire.Ils se composait de trois syllabes aléatoires, avec trois minuscules dans chaque syllabe.Le résultat a été raisonnablement sûr (de l'ordre de milliards de combinaisons possibles) encore prononcer-mesure, que je continue à utiliser certains de ces mots de passe plus d'une décennie plus tard.James' exemple, est une excellente démonstration de ce.

Un commentaire sur les mots de passe, en général, à partir d'un réseau de professionnel de la sécurité:ils sont terribles, pour plusieurs raisons, notamment:

  • Généralement facilement rompu, soit par le biais de l'ingénierie sociale ou avec des logiciels d'attaque, surtout si vous savez rien à propos de votre cible.

    Exemple 1: J'ai récemment eu besoin de réviser un mot de passe-protégés de document technique.En regardant la date, je savais qui notre Technologie Écrivain en résidence à l'époque, tapé le premier mot qui est entré dans mon esprit, et immédiatement déverrouillé le document.

    Exemple 2: Standard piratage de mots de passe des programmes qui permettent la cracker afin de spécifier un ensemble de règles qui sont fournies par l'utilisateur du dictionnaire.Il est trivial de remplacer certaines lettres avec $ymb01$, ou de le traduire en 1337, etc.

  • "Sécuriser" les mots de passe ne sont pas.Étant donné le nombre incalculable de mots de passe de la plupart des gens ont besoin de vous souvenir, de la façon la plus courante de "se souvenir" d'un "fort" mot de passe comme "a4$N!8_q" est de l'écrire sur un morceau de papier (ou, pire, de le stocker dans un fichier texte).'Nuff said.

Si vous avez besoin vraiment sécurisé d'authentification, multi-facteur (ou deux facteurs) est la acceptées de l'industrie mécanisme.Les deux "facteurs" sont généralement quelque chose que vous ont (comme une carte d'accès) et quelque chose que vous savoir qui permet (comme une tête d'ÉPINGLE).Ni l'un fonctionne sans l'autre-vous avez besoin de deux.

D'autre part, prendre en considération le niveau de sécurité que vous avez vraiment besoin.De quoi êtes-vous protéger?Combien de mal faire les "méchants" veulent pour obtenir il, et quelles sont les conséquences s'ils le font?Les Chances sont, "Sa@Secret!" est plus assez bon.:-)

Je n'aime pas la liste des mots de l'approche.Par exemple, dans /usr/share/dict/words sur OSX, il y a 5110 4 caractères des mots.À l'aide de deux d'entre eux avec un élément de séparation caractère de produit ~600M de combinaisons.Mais si vous avez utilisé le jeu de caractères directement avec un fort générateur de nombres aléatoires, vous auriez 88^9 mots de passe possibles, 3.16 e+17 combinaisons.

De toute façon, la probable attaque contre ce système va à l'encontre du générateur de nombre aléatoire, donc assurez-vous que vous êtes en utilisant un chiffrement fort.Si vous utilisez PHP standard de la fonction rand, il sera attaqué par l'enregistrement et la réinitialisation des milliers de mots de passe à l'échantillon de la RNG de l'état, et ensuite prédire le reste RNG de l'état, ce qui permettra de réduire le nombre de mots de passe possibles à un attaquant a besoin de tester.

Un départ approche pourrait être de générer principalement anglais valide syllabes, de les mélanger, puis jetez-la dans un texte->3ll3 de conversion.Il y a eu des travaux effectués sur intergénérationnelle de la langue naturelle des grammaires, de sorte que l'un de ceux-ci peuvent vous aider.

E. g.ah ul ing sont autant de syllabes, ou à peu près...mélangez -> Ingulah...3ll3 c' -> 1ngu4h.Est-il le meilleur?Nah.Mais au moins, il est semipronouncable(si vous parlez 3ll3) et plus de calcul sécurisé.

Si vous êtes intéressé à générer des mots de passe prononçables, il y a un C# port à:http://www.hoogervorst.ca/arthur/?attachment_id=1708

Dans le code, vous trouverez des liens utiles pour en savoir plus.http://www.multicians.org/thvv/gpw.html

Bonne Chance.James

function random_readable_pwd($length=12){
    // special characters
    $sym="!\"§$%&/()={[]}\,.-_:;@>|";

    // read words from text file to array
    $filename="special.txt";
    if (!file_exists($filename)) { die('File "'.$filename.'" is not exists!'); }
    $lines = file($filename);
    foreach ($lines as $line_num => $line) {
        $line=substr($line, 0, -2);
        $words[].=$line;
    }

    // Add words while password is smaller than the given length
    $pwd = '';
    $ran_date=date("s");
    while (strlen($pwd) < $length){
        $r = mt_rand(0, count($words)-1);
        // randomly upercare word but not all in one time
        if ($ran_date % 3 == 0) $words[$r]=ucwords($words[$r]);
        $pwd .= $words[$r];
        //randomly add symbol
        if ($ran_date % 2 == 0) $pwd .= $sym{mt_rand(0,strlen($sym))};
        $ran_date++;
    }

    // append a number at the end if length > 2 and
    // reduce the password size to $length
    $num = mt_rand(1, 99);
    if ($length > 2){
        $pwd = substr($pwd,0,$length-strlen($num)).$num;
    } else { 
        $pwd = substr($pwd, 0, $length);
    }

    return $pwd;

}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top