Maison  >  Article  >  interface Web  >  NodeJS implémente un cryptage irréversible et une sauvegarde du mot de passe

NodeJS implémente un cryptage irréversible et une sauvegarde du mot de passe

小云云
小云云original
2018-03-19 09:26:121798parcourir

Dans les applications, il est souvent nécessaire de crypter et de stocker les mots de passe des utilisateurs. Enregistrer les mots de passe en texte clair présente un inconvénient : Une fois divulgué, cela entraînera facilement de grandes pertes, et peut également entraîner des pertes pour les utilisateurs et les mots de passe d'autres sites Web (car la plupart des utilisateurs utilisent le même compte et le même mot de passe sur la plupart des sites Web). ).

Cette fuite peut provenir de deux aspects : des pirates informatiques et du personnel d'exploitation et de maintenance commettant un vol.

Afin d'éviter toute fuite du texte en clair du mot de passe, nous devons crypter de manière irréversible le champ du mot de passe enregistré dans la base de données. Pour être précis, il est crypté puis enregistré dans la base de données.

Les algorithmes de chiffrement irréversibles couramment utilisés incluent MD5 et SHA-1.

Dans NodeJS, ils sont extrêmement faciles à utiliser, il suffit d'utiliser le package crypto intégré officiel :


var clearText = '123456';
// MD5 Hash
require('crypto').createHash('md5').update(clearText).digest('hex');
// 'e10adc3949ba59abbe56e057f20f883e'
// SHA-1 Hash
require('crypto').createHash('sha1').update(clearText).digest('hex');
// '7c4a8d09ca3762af61e59520943dc26494f8941b'

Quand Lorsqu'un utilisateur s'enregistre, le mot de passe soumis par l'utilisateur est d'abord crypté de manière irréversible, puis le texte chiffré est stocké dans la base de données.

Lorsqu'un utilisateur se connecte, le mot de passe soumis par l'utilisateur est d'abord crypté de la même manière, puis comparé au texte chiffré de la base de données pour déterminer si le mot de passe est correct.

Théoriquement, il existe d'innombrables mots de passe correspondant à la même valeur de hachage, mais ne vous inquiétez pas trop du risque d'être touché, car en comparaison, votre serveur Web et votre base de données peuvent être vulnérables aux inondations. les attaques s'effondrent en premier.

Recommandations associées :

javascript - Certains sites Web chiffrent de manière irréversible le mot de passe dans la zone de mot de passe avec js lorsque l'utilisateur soumet la connexion, puis la soumet. Est-ce nécessaire ? Quels sont les avantages et les inconvénients ?

Améliorer la sécurité du stockage et de la vérification des mots de passe des utilisateurs_Tutoriel PHP

Comment jquery.cookie.js implémente la fonction d'enregistrement des mots de passe pour la connexion de l'utilisateur_ jquery

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