Maison > interface Web > js tutoriel > le corps du texte

Quels sont les moyens de chiffrer les mots de passe dans nodejs ?

php中世界最好的语言
Libérer: 2018-05-09 11:46:11
original
3070 Les gens l'ont consulté

Cette fois, je vais vous présenter quelles sont les façons de crypter les mots de passe dans nodejs, et quelles sont les précautions pour le cryptage des mots de passe dans nodejs. Ce qui suit est un cas pratique, jetons un coup d'œil.

1. Introduction au node module de chiffrement crypto

En fait Il est crypté à l'aide de MD5, qui n'est pas très sécurisé. En développement réel, vous pouvez ajouter du sel selon votre propre plan

2. Utilisez la méthode de cryptage dans la vue de routage .

1. Importez le module de cryptage fourni avec le nœud (aucune installation requise)

//导入加密模块
const crypto = require("crypto");
Copier après la connexion

2. Effectuez un enregistrement de l'utilisateur, vue de cryptage du mot de passe<.>

<p class="col-md-6">
  <h4>用户注册</h4>
  <form role="form" method="post" action="/regest">
    <p class="form-group">
      <label for="username">用户名:</label>
      <input id="username" type="text" placeholder="请输入用户名" name="username" class="form-control"/>
    </p>
    <p class="form-group">
      <label for="password">密码:</label>
      <input id="password" type="password" placeholder="请输入密码" name="password" class="form-control"/>
    </p>
    <p class="form-group">
      <input type="submit" value="提交" class="btn btn-success"/>
    </p>
  </form>
</p>
Copier après la connexion
router.post("/regest",(req,res)=>{
  console.log(req.body);
  let name = req.body.username;
  let password = req.body.password;
  let md5 = crypto.createHash("md5");
  let newPas = md5.update(password).digest("hex");
  db("insert into user1(name,password) values(?,?)",[name,newPas],(err,data)=>{
    if (err){
      res.send("注册失败");
    }
    console.log(data);
    if (data){
      res.send("注册成功");
    }
  })
});
Copier après la connexion

3. Connexion de l'utilisateurEffectuer la vérification du mot de passe

1. mot de passe saisi par l'utilisateur Traitement de cryptage

2. Faites correspondre le mot de passe crypté avec la base de données

router.post("/login",(req,res)=>{
  let name = req.body.username;
  let password = req.body.password;
  let md5 = crypto.createHash("md5");
  let newPas = md5.update(password).digest("hex");
  db("select * from user1 where name = ?",[name],(err,data)=>{
    console.log(data[0].password);
    if (err){
      res.send("发生错误");
    }
    if (data){
      if (data[0].password === newPas){
        res.send("登录成功");
      }else {
        res.send("用户名或密码错误");
      }
    }
  })
})
Copier après la connexion
<p class="col-md-6">
  <h4>用户登录</h4>
  <form role="form" method="post" action="/login">
    <p class="form-group">
      <label for="username2">用户名:</label>
      <input id="username2" type="text" placeholder="请输入用户名" name="username" class="form-control"/>
    </p>
    <p class="form-group">
      <label for="password">密码:</label>
      <input id="password" type="password" placeholder="请输入密码" name="password" class="form-control"/>
    </p>
    <p class="form-group">
      <input type="submit" value="提交" class="btn btn-success" id="sub-btn2"/>
    </p>
  </form>
</p>
Copier après la connexion

4. Extension (généralement nous chiffrons le traitement)

1. Utilisez des nombres aléatoires pour générer aléatoirement un certain nombre de chiffres

2 Utilisez le cryptage réversible pour crypter les nombres aléatoires générés lors de la première étape
Le cryptage réversible comprend
et. Base64 cryptage (en particulier Baidu)Hex3. Associez le nombre aléatoire crypté lors de la deuxième étape avec notre vrai mot de passe
4 Chiffrez la troisième étape (
)MD55. Cryptage réversible
6. Transformez le mot de passe généré aux deuxième et cinquième étapes en un mot de passe

5. 1. Obtenez le mot de passe lors de la connexion2. Extrayez la section de cryptage par nombre aléatoire du mot de passe obtenu3. Répétez la méthode de cryptage ci-dessus (3,4,5,6)

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !


Lecture recommandée :

vue traite les données obtenues par storejs

Exemple de code pour créer des effets de feux d'artifice avec p5.js_ javascript compétences

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal