node crypto--sh1-md5

//tool.js  文件var crypto=require(‘crypto‘);
function sha1(str){
  return  crypto.createHash(‘sha1‘).update(str).digest(‘hex‘);

}
function md5(str){
     return  crypto.createHash(‘md5‘).update(str).digest(‘hex‘);
}
var _extends=function(obj1,obj2){
    console.log(‘_extends‘)  //继承
    for(var k in obj1){
        obj2[k]=obj1[k]
    }

}
module.exports={
    sha1:sha1,
    md5:md5,
    _extends:_extends
}//model.js文件

var util=require(‘util‘);
const PREFIX=‘blog_‘;
var db=require(__dirname+‘/../config/db.js‘);
//console.log(db);
function model(){
this.prefix=PREFIX;
this.db=db;
}

model.prototype.insert=function(obj,callback){
//insert into table() values()
//{username:‘guojikai‘,age:‘55‘,sex:‘1‘}
var table=this.table;
var fields=‘‘;
var values=‘‘;
for( var k in obj){
fields+=k+‘,‘;
values=values+"‘"+obj[k]+"‘,"
}
fields=fields.slice(0,-1);
values=values.slice(0,-1);
var sql="INSERT INTO "+this.prefix+table+‘(‘+fields+‘) VALUES(‘+values+‘)‘;
// console.log(sql+‘--------------‘);
this.db.query(sql,callback);
}
model.prototype.findOne=function (where,callback){ //查找一条;
// whre is arr; [{id:1},{username:admin}];
var table=this.table;
var _WHERE=‘‘;
if(util.isObject(where)){
_WHERE+=‘WHERE ‘;
for(var k in where){
_WHERE+=k+"=‘"+where[k]+"‘ AND ";
}

_WHERE=_WHERE.slice(0,-4);
}else if(typeof where ==‘string‘){
_WHERE=‘WHERE ‘+where;
}
var sql="SELECT * FROM "+this.prefix+table+‘ ‘+_WHERE+‘ LIMIT 1‘;
console.log(sql);
this.db.query(sql,function(err,data){
if(err){
callback(err,0);
}else{
callback(err,data[0]);
}
});
}
model.prototype.select=function(fields,callback){ //查找所有;
var _FIELDS=‘‘;
for(var i=0;i<fields.length;i++){
_FIELDS+=fields[i]+‘,‘;
}
_FIELDS=_FIELDS.slice(0,-1);
var sql="SELECT "+_FIELDS+" FROM "+this.prefix+table;
console.log(sql);
this.db.query(sql,callback);
}

model.prototype.update=function(sets,where,callback){
var _SETS=‘‘;
var _WHERE=‘‘;
var table=this.table;
for(var k in sets){
_SETS+=k+"=‘"+sets[k]+"‘,";
}
_SETS=_SETS.slice(0,-1);
for(var k2 in where){
_WHERE+=k+"=‘"+where[k2]+"‘ AND ";
}
//update table set username=‘admin2‘,age=‘55‘ where id="5";
var sql="UPDATE "+this.prefix+table+‘ SET ‘+_SETS+‘ ‘+_WHERE;
this.db.query(sql,callback);
}
model.prototype.del=function(where,callback){
var table=this.table;
var _WHERE=‘‘;
for(var k2 in where){
_WHERE+=k+"=‘"+where[k2]+"‘ AND ";
}
var sql="DELETE FROM "+this.prefix+table+‘ ‘+_WHERE;
this.db.query(sql,callback);
}

module.exports=new model();

// users.js 文件;

var model=require(‘./model.js‘);
var tool=require(‘../tool.js‘);
function User(){
this.table="users";
this.name="user";
}
var user=new User();
tool._extends(model,user);

module.exports=user

实现模块化


  

时间: 2024-10-09 04:33:08

node crypto--sh1-md5的相关文章

node crypto md5加密,并解决中文不相同的问题

在用crypto模块时碰到了加密中文不相同的问题,多谢群里面@蚂蚁指定 1:解决中文不同的问题 function md5Pay(str) { str = (new Buffer(str)).toString("binary"); var ret = crypto.createHash('md5').update(str).digest("hex"); return ret;} 2:正常字符串加密 function md5(str) { var ret = crypt

node快速计算md5

最近在做一个文件上传的项目,当上传文件达到几十GB,几百GB后在文件上传99%后,需要等待非常长的时间文件才能完成上传.通过埋点打印时间,发现md5计算时间非常长. 为了校验文件传输的完整性需要在文件上传结束后校验文件的完整性,md5值就用来校验完整性,所以这一步不能少. 解决方案 通过网上查找资料,MD5计算工具在计算大文件md5值时也不是一次性计算出来的,也是通过分片的方式累加计算出来的. 所以我们在上传大文件时,本来上传的思路就是分片上传,我们只需要对每块分片进行md5计算,最后累加计算m

Node.js 内置模块crypto加密模块(1)md5和shax

MD5:消息摘要算法(Message-Digest Algorithm) SHA家族:安全散列算法( Secure Hash Algorithm ) 1.首先看一个简单的加密 "use strict"; //引入crypto模块const crypto = require("crypto"); //创建一个使用md5加密的hash对象,也可以使用sha1.sha256.sha512加密let hash = crypto.createHash("md5&qu

node(md5)

md5是一种信息-摘要算法,即针对一段明文给出一个hash值,在密码学中最经典的用法是验证数据的完整性,因为一旦原始数据发生改变那么生成的摘要也必将不同. 网络中md5可以用于用户密码的加密,即在数据库或日志的存储中密码不再以明文的形式存储而是一段md5计算过的密文,这样可以避免管理员看到密码,也加大了被破解的难度. 备注:md5是不可逆,也就是说不存在解密. 采用node提供的crypto模块使用如下: var crypto = require('crypto'); var content =

详解Node.js API系列 Crypto加密模块(1)

MD5加密算法 算法简介 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2.md3和md4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2.md4还是md5,它们都需要

Node.js 内置模块crypto加密模块(3) HMAC

HMAC:哈希消息认证码 ( Hash-based Message Authentication Code ) HMAC是密钥相关的哈希算法 使用 HMAC 进行加密的Node实现的一种方法: "use strict"; const crypto = require("crypto");//实例化一个hmac对象,使用md5进行加密,加密密钥是secret-key const hmac = crypto.createHmac("md5", &qu

node.js中密码加密处理操作(MD5)

//首先加载node自带的加密模块var crypto = require('crypto')//使用方法var pwd = ‘abc123’var md5 = crypto.createHash('md5')var newpwd = md5.update(pwd).digest('hex') 原文地址:https://www.cnblogs.com/suneil/p/11307324.html

Node.js Crypto 加密算法库

Crypto库是随Nodejs内核一起打包发布的,主要提供了加密.解密.签名.验证等功能.Crypto利用OpenSSL库来实现它的加密技术,它提供OpenSSL中的一系列哈希方法,包括hmac.cipher.decipher.签名和验证等方法的封装. Crypto官方文档:http://nodejs.org/api/crypto.html 参考文章:http://blog.fens.me/nodejs-crypto/ //md5加密中文 function md5Pay(str) { str =

Node.js的DES加解密和MD5加密

最基本的就是经常用的md5加密算法 代码如下 var  MD5=function (data) {       var _encrymd5 = require('crypto').createHash('md5');      var Buffer = require("buffer").Buffer;  //解决中文不一致的BUG    var buf = new Buffer(data);    var str = buf.toString("binary");

nodejs -- crypto MD5签名

MD5使用方法: const crypto = require('crypto'); var obj = crypto.createHash('md5'); // 可多次调用 update obj.update('123456'); obj.update('789'); console.log(obj.digest('hex')); sha256 使用方法,可将‘md5’  直接改成 'sha256' 就可以. 原文地址:https://www.cnblogs.com/gzh529/p/1059