>  기사  >  웹 프론트엔드  >  Express에서 bcryptjs 비밀번호 암호화 사용

Express에서 bcryptjs 비밀번호 암호화 사용

亚连
亚连원래의
2018-06-07 13:38:082077검색

이 기사에서는 Express에서 비밀번호 암호화를 위해 bcryptjs를 사용하는 방법을 주로 소개하고 참고용으로 제공합니다.

저는 며칠 전에 Express를 사용하여 작은 프로젝트를 개발했습니다. 로그인 및 등록 모듈을 개발할 때 비밀번호 암호화에 bcryptjs가 사용되었습니다. 내용을 요약하면:

bcrypt는 크로스 플랫폼 파일 암호화 도구입니다. 이를 통해 암호화된 파일은 지원되는 모든 운영 체제 및 프로세서에서 전송할 수 있습니다. 비밀번호는 8~56자 사이여야 하며 내부적으로 448비트 키로 변환됩니다.

데이터를 암호화하는 것 외에도 bcrypt는 기본적으로 원래 입력 파일을 삭제하기 전에 임의의 데이터로 세 번 덮어쓰므로 컴퓨터 데이터에 접근할 수 있는 누군가의 복구 시도를 방지합니다. 이 기능을 사용하고 싶지 않으면 비활성화할 수 있습니다.

bcrypt는 1993년 Bruce Schnell이 출시한 Blowfish 암호화 알고리즘을 사용합니다. 특히 bcrypt는 Paul Kircher의 알고리즘을 사용하여 구현됩니다. bcrypt와 함께 배포되는 소스 코드는 원본 버전에서 약간 수정되었습니다.

Express에서 bcryptjs를 사용하는 단계:

1. bcryptjs 모듈을 설치합니다.

npm install bcryptjs --save

2. 암호화가 필요한 모듈에 bcryptjs 라이브러리를 도입합니다.

var bcrypt = require('bcryptjs');

3. 등록할 때 HASH 값을 입력하고 데이터베이스에 삽입합니다.

var salt = bcrypt.genSaltSync(10);

5. 로그인할 때 HASH 값을 확인하고 데이터베이스에 삽입합니다.

router.post('/register', function(req, res, next){
  // 从连接池获取连接
  pool.getConnection(function(err, connection) {
    // 获取前台页面传过来的参数
    var param = req.query || req.params;
    /*生成HASH值*/
    var hash = bcrypt.hashSync(param.pwd,salt);
    // 建立连接 新增用户
    connection.query(userSQL.insert, ["",hash,param.phone,"","","",0], function(err, result) {
      res.send(result);
      // 释放连接
      connection.release();
    });
  });
});

위에서는 bcryptjs의 동기 사용을 사용합니다.

해시 비밀번호 생성:

router.post('/login', function(req, res, next){
  // 从连接池获取连接
  pool.getConnection(function(err, connection) {
    // 获取前台页面传过来的参数
    var param = req.query || req.params;
    // 建立连接 根据手机号查找密码
    connection.query(userSQL.getPwdByPhoneNumber, [param.phone], function(err, result) {
      if(bcrypt.compareSync(param.pwd,result[0].password)){
        res.send("1");
        connection.query(userSQL.updateLoginStatusById, [1,result[0].id], function(err, result) {
        });
      }else{
        res.send("0");
      }
      // 释放连接
      connection.release();
    });
  });
});

비밀번호 확인:

bcrypt.genSalt(10, function(err, salt) {
  bcrypt.hash("B4c0/\/", salt, function(err, hash) {
    // Store hash in your password DB.
  });
});

다음은 Bcrypt를 사용하여 데이터를 암호화하는 간단한 예입니다.

bcrypt.compare("B4c0/\/", hash).then((res) => {
  // res === true
});

위는 모든 사람을 위해 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다. .

관련 기사:

nodejs의 캐시로 redis를 통해 구현된 캡슐화된 캐시 클래스

기본 JavaScript를 사용하여 돋보기 효과 달성

Vue Socket.io 소스 코드에 대한 자세한 분석

위 내용은 Express에서 bcryptjs 비밀번호 암호화 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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