crypto
crypto模块提供了加密脑功能,包括对OpenSSL的哈希、HMAC、加密、解密、签名以及验证功能的一整套封装。
下面整理了一些平常经常用到的加密解密方法:
const crypto = require('crypto');
const assert = require('assert');
const Crypto = require('cryptojs').Crypto
const _crypto = require('crypto')
const cryptoJS = require('crypto-js')
const mode = new Crypto.mode.CBC(Crypto.pad.pkcs7)
const bytes = require('utf8-bytes')
const aesKey = ''
const aesIv = ''
const algorithm = 'aes-128-cbc'
1. sha1
function sha1Sign(src) {
const sha1 = crypto.createHash('sha1');
sha1.update(src);
return sha1.digest('hex').toString();
}
function makeSalt() {
return crypto.randomBytes(16).toString('base64');
}
2. hash
function hashPassword(password, salt) {
assert(password && salt, 'pwd or salt missing');
const _salt = new Buffer(salt, 'base64');
return crypto.pbkdf2Sync(password, _salt, 10000, 64).toString('base64');
}
4. dec
const algorithm = 'aes-256-ctr',
password = '';
function encrypt(buffer){
let cipher = crypto.createCipher(algorithm,password)
let crypted = Buffer.concat([cipher.update(buffer),cipher.final