✏️ 编辑:index.js
路径:
/home/boguraj1/public_html/jobsite/node_modules/cookie-signature/index.js
大小:1.2 KB · 修改:2022-11-21 20:08:08 · 权限:0644 · 可写
← 返回目录
👁 查看
⬇ 下载
/** * Module dependencies. */ var crypto = require('crypto'); /** * Sign the given `val` with `secret`. * * @param {String} val * @param {String} secret * @return {String} * @api private */ exports.sign = function(val, secret){ if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); return val + '.' + crypto .createHmac('sha256', secret) .update(val) .digest('base64') .replace(/\=+$/, ''); }; /** * Unsign and decode the given `val` with `secret`, * returning `false` if the signature is invalid. * * @param {String} val * @param {String} secret * @return {String|Boolean} * @api private */ exports.unsign = function(val, secret){ if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); var str = val.slice(0, val.lastIndexOf('.')) , mac = exports.sign(str, secret); return sha1(mac) == sha1(val) ? str : false; }; /** * Private */ function sha1(str){ return crypto.createHash('sha1').update(str).digest('hex'); }
💾 保存
取消
保存为 UTF-8,换行统一为 LF