zoukankan      html  css  js  c++  java
  • 使用bcrypt对数据加密

    使用bcrypt对数据加密

    ​ 这是一篇随笔,用于记录在项目中用到一个比较的你npm包。这个包之所以这个货因为他的安全系数比以前用到的类似于md5,sha1要高,因为bcrypt加密,同样一个值,你每次加密出来的值是不一样的。原来的md5加密就做不到这一点。好了废话不多说,如果对bcrypt的算法感兴趣的话,大佬们可以去研究一下。下面我们来讲讲他的使用方法,其实npm仓库也有,但是本人英文水平有限哈。当然英语好的还是去查官方文档。

    使用:

    一、加密操作:

    bcrypt提供了基本的两种方式,hash 和hashSync 两个方法,前者是异步api,后者同步。

    
    // 方式一
    const bcrypt = require('bcrypt')
    bcrypt.hash('777777', 10, (err, encrypted) => {
        if (err) {
            console.log(err.message)
            return
        }
        console.log(encrypted)
    })
    
    
    
    // 方式二(Promise风格)
    
    bcrypt
        .hash('777777', 10)
        .then(result => {
            console.log(result)
        })
        .catch(err => {
            console.log(err.message)
        })
    
    
    // 方式三  hashSync
    
    const hash = bcrypt.hashSync('777777', 10) // hash=>true
    //*注意*: hashSync 是一个同步的api,里面只需要传递两个参数,第一个参数为data[String],第二个参数为salt[Number]
    
    

    异步的方式获取散列的值,第一个参数为加密的数据(data)必须为String类型的值,第二个参数为salt 加密程度,类型必须是Number 。 这里salt的值可以 理解为加密的程度,salt值越大,越消耗时间,加密的程度也会越高

    可以传递第三个参数,回调函数(err/encrypted) 第一个参数为错误,第二个参数为加密散列后的值

    二、解密操作

    bcrypt提供了基本的两种方式,compare 和compareSync 两个方法,前者是异步api,后者同步。

    
    const bcrypt = require('bcrypt')
    const hash = bcrypt.hashSync('777777', 10)
    // 方式一、异步的比较
    bcrypt.compare('777777', hash, (err, flag) => {
        if (err) {
            console.log(err.message)
            return
        }
        console.log(flag) //flag=>true
    })
    
    
    // 方式二、异步比较(Promise)风格
    bcrypt
        .compare('777777', hash)
        .then(res => {
            console.log(res)// res=>true
        })
        .catch(err => {
            console.log(err.message)
        })
    
    
    
    //方式三,同步比较
    const flag = bcrypt.compareSync('777777', hash)// flag=>true
    
  • 相关阅读:
    Python3之random模块常用方法
    Go语言学习笔记(九)之数组
    Go语言学习笔记之简单的几个排序
    Go语言学习笔记(八)
    Python3之logging模块
    Go语言学习笔记(六)
    123. Best Time to Buy and Sell Stock III(js)
    122. Best Time to Buy and Sell Stock II(js)
    121. Best Time to Buy and Sell Stock(js)
    120. Triangle(js)
  • 原文地址:https://www.cnblogs.com/comyan/p/14074907.html
Copyright © 2011-2022 走看看