bcryptjs

bcrypt

blowfish

在nodejs中使用bcryptjs

使用之前需要在项目中先安装包

1
npm install bcryptjs --save
1
2
3
4
5
6
7
8
9
10
11
var bcrypt = require('bcryptjs');
var salt = bcrypt.genSaltSync(10);
var hash = bcrypt.hashSync("Password-001", salt);
console.log('hash=' + hash);
var valid = bcrypt.compareSync('Password-001', hash);
console.log('compare-1: ' + valid);
valid = bcrypt.compareSync('Password-002', hash);
console.log('compare-2: ' + valid);

运行结果:

1
2
3
4
5
> node index.js
hash=$2a$10$AFqmH2Y3tgNvUeEOV4H3UuSZzH8nlfNAXEJTukpbpArakftGizlDm
compare-1: true
compare-2: false
bcrypt.genSaltSync()
$2a$10$$

在golang 中使用bcrypt

在golang 的官方包也是提供了bcrypt. 但从blowfish的文档中看,并不推荐使用blowfish算法.

1
2
3
4
5
package main
import "golang.org/x/crypto/bcrypt"
ash, err := bcrypt.GenerateFromPassword([]byte("soem-pass"), 4)
err := bcrypt.CompareHashAndPassword(ash, []byte("soem-pass"))