Skip to content

Instantly share code, notes, and snippets.

@pegasuskim
Created May 17, 2016 01:54
Show Gist options
  • Select an option

  • Save pegasuskim/b64c3a27b9f67404b7743e9d755cc9a4 to your computer and use it in GitHub Desktop.

Select an option

Save pegasuskim/b64c3a27b9f67404b7743e9d755cc9a4 to your computer and use it in GitHub Desktop.
// module
var crypto = require('crypto');
// Constant
var HASH_TYPE = 'sha256';
var HASH_UPDATE_DATA = 'PegasusNemberQer!!!';
var INITIALIZE_VECTOR = '41chcgDa1qAC9c3l';
var CHIPER_TYPE = 'aes-256-cbc';
var ENCODE_TYPE = 'base64';
var KEY = crypto.createHash(HASH_TYPE).update(HASH_UPDATE_DATA).digest();
exports.encrypt = function(str) {
var cipher = crypto.createCipheriv(CHIPER_TYPE, KEY, INITIALIZE_VECTOR);
var result = cipher.update(str, 'utf8') + cipher.final();
// console.log('res1: ' + result);
var ret = new Buffer(result, 'binary');
return ret.toString(ENCODE_TYPE);
}
exports.decrypt = function(str) {
var decoded = new Buffer(str, ENCODE_TYPE);
var decipher = crypto.createDecipheriv(CHIPER_TYPE, KEY, INITIALIZE_VECTOR, decoded);
var result = decipher.update(decoded, 'utf8') + decipher.final();
var ret = new Buffer(result, 'binary');
// console.log('res1: ' + ret.toString('utf8'));
return ret.toString('utf8');
}
exports.xorEncrypt = function(key, str) {
var encrypted = "";
var keyCount = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i) ^ key.charCodeAt(keyCount++);
encrypted += String.fromCharCode(c);
if (keyCount == key.length) keyCount = 0;
}
return encrypted.toString('utf-8');
};
exports.xorDecrypt = function(key, str) {
var decrypted = "";
var keyCount = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i) ^ key.charCodeAt(keyCount++);
decrypted += String.fromCharCode(c);
if (keyCount == key.length) keyCount = 0;
}
return decrypted.toString('utf-8');
};
var text = 'Hello';
var encText = exports.encrypt(text);
var decText = exports.decrypt(encText)
console.log('--------------------');
console.log(encText);
console.log(decText);
console.log('--------------------');
encText = exports.xorEncrypt("test1", "hellasdfljaksldjfasdkflkajsdflkjasdkflo");
decText = exports.xorDecrypt("test1", encText);
console.log('--------------------');
console.log(encText);
console.log(decText);
console.log('--------------------');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment