kopia lustrzana https://github.com/c9/core
41 wiersze
1013 B
JavaScript
41 wiersze
1013 B
JavaScript
var crypto = require("crypto");
|
|
|
|
exports.crypt = function(sessionId, secret) {
|
|
secret = [].concat(secret);
|
|
secret = secret[1] || secret[0];
|
|
|
|
var cipher = crypto.createCipher("aes256", secret);
|
|
|
|
return (
|
|
cipher.update(sessionId, "ascii", "base64") +
|
|
cipher.final("base64")
|
|
).replace(/\=+$/, "");
|
|
};
|
|
|
|
exports.decrypt = function(encrypted, secret) {
|
|
var secrets = [].concat(secret);
|
|
|
|
var data;
|
|
|
|
for (var i = 0; i < secrets.length; i++) {
|
|
secret = secrets[i];
|
|
var cipher = crypto.createDecipher("aes256", secret);
|
|
|
|
try {
|
|
data = [
|
|
cipher.update(encrypted, "base64", "ascii"),
|
|
cipher.final("ascii")
|
|
];
|
|
}
|
|
catch (err) { /** ignore failed decrypt **/ }
|
|
if (data) return data.join("").replace(/\=+$/, "");
|
|
}
|
|
};
|
|
|
|
exports.uid = function(length) {
|
|
return (require("crypto")
|
|
.randomBytes(length)
|
|
.toString("base64")
|
|
.slice(0, length)
|
|
);
|
|
}; |