首页 > 其他分享 >Egg(四)数据加解密之crypto

Egg(四)数据加解密之crypto

时间:2022-12-28 00:00:40浏览次数:37  
标签:const type app 加解密 crypto 为空 Egg defaultValue

crypto插件官网

1.安装插件

npm install crypto --save

2.配置文件

  配置路径 config / config.default.js

  secret参数可以在配置的时候随意修改,项目运行后尽可能不要再次修改

config.crypto = {
    secret:  'fdgw@45nca052d12adssa23w_3e6d7ksh2!#@3nxjdas*_672'
};

3.使用

  举例:将密码加密并保存到数据库

  文件路径:app/model/user.js,因为我的用户相关的模型放在此文件内



'use strict';
const crypto = require('crypto'); //引入加密组件
module.exports = app => {     const { STRING,INTEGER, DATE } = app.Sequelize;     const User = app.model.define('user',{         id:{             type:INTEGER(20).UNSIGNED,  //UNSIGNED代表无符号             primaryKey:true,  //主键             autoIncrement:true //自动递增           },           username:{             type:STRING(30),             allowNull:false, //是否允许为空             defaultValue:'', //默认值为空             comment:'用户名称', //备注             unique:false  //是否是唯一的           },           password:{             type:STRING(200),             allowNull:false,             defaultValue:'',        //密码加密             set(val){                const hmac = crypto.createHash("sha256", app.config.crypto.secret);                hmac.update(val);                let hash = hmac.digest("hex");                this.setDataValue('password',hash);             }             },           avatar_url:{             type:STRING(200),             allowNull:false,             defaultValue:''           },           phone:{             type:STRING(11),             allowNull:true, //是否允许为空             defaultValue:'', //默认值为空             comment:'手机号', //备注             unique:true  //是否是唯一的           },           vip:{             type:INTEGER(1),             allowNull:true, //是否允许为空             defaultValue:0, //默认值为空             comment:'vip', //备注             unique:false  //是否是唯一的           },         created_at:DATE,         updated_at:{           type:DATE,           //转换成时间戳           get(){             const val = this.getDataValue('updated_at');             return (new Date(val)).getTime();           }         }     });
    //查询用户         return User; }
 

 4.验证思路

  首先将前台传过来的密码进行加密,然后在和数据库中得到的密码进行比对

标签:const,type,app,加解密,crypto,为空,Egg,defaultValue
From: https://www.cnblogs.com/jn-zc/p/17009272.html

相关文章

  • Egg(二)关闭csrf开启跨域
    1.安装插件npmiegg-cors--save2.开启插件配置路径:{app_root}/config/plugin.jscors:{enable:true,package:'egg-cors',},3.关闭csrf并开启跨域......
  • Egg(一)初始化项目
    egg官网1.创建目录并进入egg-example表示创建的项目目录名称,可根据需要随意修改mkdiregg-example&&cdegg-example2.初始化项目一路回车即可npminit......
  • 使用PM2将egg.js部署到服务上
    使用PM2将egg.js部署到服务上服务器安装环境Node.jsPM2pm2部署步骤npminstallpm2-gegg.js部署步骤npminitegg--type=simple修改默认端口找到config目录下的conf......
  • pkg对egg项目打包
    前言项目部署,没做之前以为很简单,不就跟vue一样build一下就行么,然而并不是这样的,在第一次对egg项目打包使用了各种方法,也都无果,最后还是使用了egg官网的项目部署,上传服务器......
  • RSA非对称加解密算法填充方式(Padding)
    1.padding模式1.1三类常见填充方式RSA加密常用的填充模式有三种:​​RSA_PKCS1_PADDING,RSA_PKCS1_OAEP_PADDING,RSA_NO_PADDING。​​与对称加密算法DES,AES一样,RSA算法也......
  • 【博学谷学习记录】超强总结,用心分享|接口加解密介绍
    一、介绍在做接口测试的时候,如果是外部用户直接能看到我们的参数,可能会造成接口不安全,比如直接用明文的参数请求接口,把参数自己定义,脏数据就会存到我们的数据库中,严重......
  • C# AES加解密
    ///<summary>///AES加密///</summary>///<paramname="key"></param>///<paramname="str"></param>///<returns></returns>public......
  • NewStarCTF-WEEK1-Crypto-ezrsa复现
    2022-NewStar-Week1-ezrsa复现题干assertlen(flag)%5==0cnt=len(flag)//5flags=[flag[cnt*i:cnt*(i+1)]foriinrange(5)]可知flag分五段。第一段m......
  • bugku刷题--Crypto
    写在前面其实一开始看到CTF就是在找Crypto的答案,接触到这个比赛也是机缘巧合,所以bugku里面应该先以刷Crypto为主(古典密码真的很好玩啊)0x00抄错的字符其实不能严格意义上......
  • crypto-gmsm国密算法库
    crypto-gmsm国密算法库一、开发背景crypto-gmsm国密算法库是国密商密算法(SM2,SM3,SM4)工具类封装,国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,目前主要使用......