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
    
  • 相关阅读:
    MySQL事务知识要点(一)
    MySQL 安全体系知识要点
    MySQL 安全性知识要点
    #翻译#通往SQL Server安全级别2的阶梯:身份验证; 唐•吉利; 原文链接:Stairway to SQL Server Security Level 2: Authentication http://www.sqlservercentral.com/articles/Stairway+Series/109975/
    SQL子查询&视图&更新&删除思维导图-误点难点(附示例代码)
    #翻译#通往t
    香港中文大学-人脸识别进展-2014-06
    NotesMITLinearAlgebra
    Notes Berkerly Statistics 2.1X Week4
    Notes on Brain Study
  • 原文地址:https://www.cnblogs.com/comyan/p/14074907.html
Copyright © 2011-2022 走看看