gcl
Version:
码农村nodejs类库,完成解决回调陷阱,配置框架,IOC框架,统一多DB访问框架,可扩展日志框架和io/db/net/thread/pool 克隆表达式,加解密算法等等一系列基础类库和算法的实现
28 lines (27 loc) • 1.02 kB
JavaScript
import C from 'crypto-js';
import V from '../common/tool';
const _createKey = function(length) {
const ret = [];
for (let i = 0; i < length; i++) {
ret.push(Math.floor(Math.random() * 256));
}
return new Buffer(ret).toString('base64');
};
export const des3xcrypt = class {
constructor(key, iv) {
pri(this, { key: C.enc.Base64.parse(key), iv: C.enc.Base64.parse(iv) });
}
encrypt(val) {
const { _, __ } = pri(this);
return C.TripleDES.encrypt(C.enc.Utf8.parse(val), __.key, { iv: __.iv, mode: C.mode.CBC, padding: C.pad.Pkcs7 }).toString();
}
decrypt(val) {
const { _, __ } = pri(this);
return C.TripleDES.decrypt(val, __.key, { iv: __.iv, mode: C.mode.CBC, padding: C.pad.Pkcs7 }).toString(C.enc.Utf8);
}
}
export const createKey = () => _createKey(24);
export const createIV = () => _createKey(8);
//暂时抛弃官方crypto方法因为其未支持Des3-ECB
export default { des3xcrypt, createKey, createIV };
const pri = V.pris();