详解“Node实现数据加密”过程

一、node实现数据加密

1.加密的分类

  • 对称加密:也成为单密钥加密:同一个密钥进行加密和解密
  • 非对称加密:有两把钥匙(公钥和私钥)
  • 摘要算法:把任意长度的输入,根据算法生成一串固定长度的伪随机数(没有密钥,加密过程是不可逆的)

2.MD5(摘要算法)在Node中的使用方法

(1)安装crypto模块

npm install crypto

(2)使用crypto.createHash('md5')创建加密对象

(3)使用加密对象的update(明文)进行加密,然后调用,然后调用digest('hex')返回定长的十六进制字符串

3.示例

  • 对用户的注册密码进行加密后存入数据库

(1)首先安装模块

npm install mysql2
npm install sequelize //安装序列化

(2)其次创建数据库连接的配置对象seqconfig.js文件。

//1.导入sequelize模块
var Sequelize=require('sequelize')

//2.配置一个数据库连接的配置对象
var mysqlDemo=new Sequelize('info','root','123456',{
   
    host:'localhost',
    port:3306,
    dialect:'mysql',  //数据库方言
    pool:{
      //数据库连接池
        max:10,
        min:3,
        idle:10000
    }
})
//3.导出数据库连接的配置对象
module.exports=mysqlDemo

(3)modeladmin.js的模块,使用sequelize建立模型(类),该模型实现与数据表的orm映射

const  Sequelize=require('sequelize')
const orm=require('../seqconfig')

const AdminModel=orm.define('admin', {
   
    Id: {
   
        type: Sequelize.INTEGER,
        primaryKey: true,  //主键
        autocomplete: true,  //自增
        field: 'id'
    },
    userName: {
   
        type: Sequelize.STRING,
        allowNull: false,  //不能为空
        field: 'username'
    },
    userPwd: {
   
        type: Sequelize.STRING,
        allowNull: false,
        field: 'userpwd'
    }
},{
   
    freezeTableName:true,
        timestamp:false

})
module.exports=AdminModel

(4)使用第三步创建的模型进行crud操作

var express=require('express')
var crypto=require('crypto')
var AdminModel=require('../config/model/admin')
var router=express.Router()

// http://localhost:3000/md5/register
router
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值