gcl
Version:
码农村nodejs类库,完成解决回调陷阱,配置框架,IOC框架,统一多DB访问框架,可扩展日志框架和io/db/net/thread/pool 克隆表达式,加解密算法等等一系列基础类库和算法的实现
72 lines (55 loc) • 2.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createIV = exports.createKey = exports.des3xcrypt = undefined;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _cryptoJs = require('crypto-js');
var _cryptoJs2 = _interopRequireDefault(_cryptoJs);
var _tool = require('../common/tool');
var _tool2 = _interopRequireDefault(_tool);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _createKey = function _createKey(length) {
var ret = [];
for (var i = 0; i < length; i++) {
ret.push(Math.floor(Math.random() * 256));
}
return new Buffer(ret).toString('base64');
};
var des3xcrypt = exports.des3xcrypt = function () {
function des3xcrypt(key, iv) {
(0, _classCallCheck3.default)(this, des3xcrypt);
pri(this, { key: _cryptoJs2.default.enc.Base64.parse(key), iv: _cryptoJs2.default.enc.Base64.parse(iv) });
}
(0, _createClass3.default)(des3xcrypt, [{
key: 'encrypt',
value: function encrypt(val) {
var _pri = pri(this),
_ = _pri._,
__ = _pri.__;
return _cryptoJs2.default.TripleDES.encrypt(_cryptoJs2.default.enc.Utf8.parse(val), __.key, { iv: __.iv, mode: _cryptoJs2.default.mode.CBC, padding: _cryptoJs2.default.pad.Pkcs7 }).toString();
}
}, {
key: 'decrypt',
value: function decrypt(val) {
var _pri2 = pri(this),
_ = _pri2._,
__ = _pri2.__;
return _cryptoJs2.default.TripleDES.decrypt(val, __.key, { iv: __.iv, mode: _cryptoJs2.default.mode.CBC, padding: _cryptoJs2.default.pad.Pkcs7 }).toString(_cryptoJs2.default.enc.Utf8);
}
}]);
return des3xcrypt;
}();
var createKey = exports.createKey = function createKey() {
return _createKey(24);
};
var createIV = exports.createIV = function createIV() {
return _createKey(8);
};
//暂时抛弃官方crypto方法因为其未支持Des3-ECB
exports.default = { des3xcrypt: des3xcrypt, createKey: createKey, createIV: createIV };
var pri = _tool2.default.pris();
//# sourceMappingURL=des3xcrypt.js.map