Skip to content

Instantly share code, notes, and snippets.

@Elevista
Created March 14, 2016 06:11
Show Gist options
  • Save Elevista/91485e3ff75c6a874283 to your computer and use it in GitHub Desktop.
Save Elevista/91485e3ff75c6a874283 to your computer and use it in GitHub Desktop.
Node crypto proxy

#SHA256

#AES256

#Base64

var crypto = require('crypto');
var SHA256 = require('./SHA256.js');
var Base64 = require('./Base64.js');
var _key = SHA256.encode('default key');
module.exports = {
encode: function (data, key) {
if (arguments.length < 2) key = _key;
var cipher = crypto.createCipher('aes-256-ctr', key); // Cipher 객체 생성
var crypted = Buffer.concat([cipher.update(new Buffer(data)), cipher.final()]);
return Base64.encode(crypted);
},
decode: function (base64, key) {
if (arguments.length < 2) key = _key;
var decipher = crypto.createDecipher('aes-256-ctr', key);
return Buffer.concat([decipher.update(Base64.decode(base64)), decipher.final()]);
}
};
var crypto = require('crypto');
function encode(data) {
var ret = new Buffer(data || '').toString('base64');
return ret.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
}
module.exports = {
encode: encode,
decode: function (code) {
code = code.replace(/-/g, '+').replace(/_/g, '/');
return new Buffer(code || '', 'base64');
},
random: function (byte) {
return encode(crypto.randomBytes(byte));
}
};
var crypto = require('crypto');
var Base64 = require('./Base64.js');
module.exports = {
encode: function (data) {
var hash = crypto.createHash('sha256').update(data).digest();
return Base64.encode(hash);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment