>  기사  >  웹 프론트엔드  >  nodejs의 비밀번호 암호화 처리 작업에 대한 자세한 설명

nodejs의 비밀번호 암호화 처리 작업에 대한 자세한 설명

亚连
亚连원래의
2018-05-25 16:30:231637검색

이 글에서는 nodejs의 비밀번호 암호화 처리 작업을 주로 소개하고, 사용자 로그인 비밀번호에 대한 nodejs의 암호화 처리 작업과 관련된 구현 기술과 주의사항을 예시 형태로 분석합니다. 암호화 처리 작업의 예가 포함된 nodejs의 비밀번호입니다. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

1. 실제로 nodeencryption modulecryptonode加密模块crypto的介绍

其实就是使用MD5加密的,不太安全,在实际开发中根据自己的方案进行加盐处理

二、在路由视图中使用加密方式

1、导入node自带的加密模块(不需要安装)

//导入加密模块
const crypto = require("crypto");

2、做一个用户注册,密码加密的视图

<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>

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("注册成功");
    }
  })
});

三、用户登录进行密码校验

1、把用户输入的密码用同样的方式加密处理
2、把加密后的密码与数据库中匹配

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("用户名或密码错误");
      }
    }
  })
})

<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>

四、扩展(一般我们加密处理)

1、利用随机数随机生成多少位数
2、利用可逆加密把第一步的生成的随机数加密
可逆加密有Base64Hex加密(具体自己百度)
3、将第二步加密好的随机数与我们真实密码拼接在一起
4、将第三步进行加密(MD5

소개 MD5 암호화를 사용합니다. 실제 개발에서는 자신의 계획에 따라 솔트를 추가할 수 있습니다. 2. 라우팅 뷰에서 암호화 방법을 사용합니다.



1. 노드와 함께 제공되는 암호화 모듈을 가져옵니다. (설치 필요 없음)

rrreee

2. 사용자 등록 및 비밀번호 암호화 보기 만들기

rrreee

rrreee


3. 비밀번호 확인을 위한 사용자 로그인


1. 동일한 방법으로 사용자가 입력한 비밀번호를 암호화합니다

2. 암호화된 비밀번호를 데이터베이스와 일치시킵니다

rrreee

rrreee

🎜🎜🎜🎜Four. Extension (일반적으로 프로세스를 암호화합니다)🎜🎜🎜🎜1. 임의의 숫자를 사용하여 몇 자릿수를 무작위로 생성합니다🎜2. 첫 번째 단계를 완료하려면 생성된 난수 암호화🎜가역 암호화에는 Base64Hex 암호화가 포함됩니다(구체적으로 Baidu)🎜3. 두 번째 단계에서 암호화된 난수를 우리의 암호와 결합합니다. 실제 비밀번호 함께 🎜4. 3단계 암호화(MD5) 🎜5. 4단계에서 가역 암호화 수행 🎜6. 2단계와 5단계에서 생성된 결과를 비밀번호로 연결 🎜🎜🎜 5. 확장 (일반적으로 암호화된 로그인)🎜🎜🎜🎜1. 로그인 시 비밀번호 획득🎜2. 획득한 비밀번호에서 난수 암호화 구간을 가로채기🎜3. 위의 암호화 방법(3,4,5,6)을 반복합니다. )🎜🎜위 내용은 모두를 위해 제가 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다. 🎜🎜관련 기사: 🎜🎜🎜AjaxToolKit의 등급 제어를 사용하는 방법🎜🎜🎜🎜🎜Ajax 기술 기반 진행률 표시줄을 사용하여 파일 업로드 구현🎜🎜🎜🎜🎜Ajax의 ReadyState 및 상태와 관련된 문제 논의🎜🎜🎜 🎜 🎜 🎜🎜 🎜🎜

위 내용은 nodejs의 비밀번호 암호화 처리 작업에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.