rafale
Version:
Deploy every services, everywhere, in just a few seconds
1 lines • 1.06 kB
JavaScript
var crypto=require("crypto"),Security={encrypt:function(e,r){var t=crypto.randomBytes(32).toString("hex").slice(0,16);void 0==r&&(r=wf.CONF.AES_KEY);var c="aes-256-ctr",a=crypto.createCipheriv(c,Crypto.createSHA256(r).slice(0,32),t),u=a.update(e,"utf8","hex");return u+=a["final"]("hex"),t+":"+u},decrypt:function(e,r){try{var t=e.split(":"),c=t[0],a=new Buffer(t[1],"hex");void 0==r&&(r=wf.CONF.AES_KEY);var u="aes-256-ctr",n=crypto.createDecipheriv(u,Crypto.createSHA256(r).slice(0,32),c),i=n.update(a,"hex","utf8");return i+=n["final"]("utf8")}catch(o){return console.dir(o),""}},returnHash:function(e,r){switch(e){case"MD5":return Crypto.createMD5(r);case"SHA256":return Crypto.createSHA256(r);case"SHA512":return Crypto.createSHA512(r);default:return null}},createMD5:function(e){var r=crypto.createHash("MD5");return r.update(e).digest("hex")},createSHA256:function(e){var r=crypto.createHash("sha256");return r.update(e).digest("hex")},createSHA512:function(e){var r=crypto.createHash("sha512");return r.update(e).digest("hex")}};module.exports=Security;