コード例 #1
0
// hash token using username and password
function hashToken(username, password, loginToken) {
    var shaPassword = new jsSHA(password, 'ASCII'),
        shaStep1 = new jsSHA(shaPassword.getHash('SHA-512', 'HEX'), 'ASCII'),
        shaStep2 = new jsSHA(loginToken, 'ASCII'),
        HashedToken = shaStep1.getHMAC(username, 'ASCII', 'SHA-512', 'HEX');
    return shaStep2.getHMAC(HashedToken, 'ASCII', 'SHA-512', 'HEX');
}
コード例 #2
0
ファイル: wechat.js プロジェクト: liaojuncong/MEAN
module.exports.checkSignature = function (req, res, next) {
    var token = "congtoken";
    var signature = req.query.signature;
    var timestamp = req.query.timestamp;
    var echostr = req.query.echostr;
    var nonce = req.query.nonce;

    var oriArray = new Array();
    oriArray[0] = nonce;
    oriArray[1] = timestamp;
    oriArray[2] = token;
    oriArray.sort();

    var original = oriArray.join('');
    var shaObj = new jsSHA('SHA-1', 'TEXT');
    shaObj.update(original);
    var scyptoString = shaObj.getHash('HEX');
    if (signature == scyptoString) {
        //验证成功
        res.send(echostr);
    }
    else {
        //验证失败
        console.log("验证失败");
    }
};
コード例 #3
0
ファイル: utilities.js プロジェクト: logary/logary-js
export function hexDigest(o: Object): string {
  // https://github.com/Caligatio/jsSHA
  const hasher = new jsSHA('SHA-256', 'TEXT'),
        normalised = normalise(o);
  hasher.update(normalised);
  return hasher.getHash('HEX');
}
コード例 #4
0
ファイル: config.js プロジェクト: ouvens/Proton
	// 计算签名方法
	function _calcSignature(ticket, noncestr, ts, url) {
		var str = 'jsapi_ticket=' + ticket + '&noncestr=' + noncestr + '&timestamp=' + ts + '&url=' + url;
		let shaObj = new jsSHA('SHA-1', 'TEXT');
		shaObj.update(str);

		return shaObj.getHash('HEX');
	}
コード例 #5
0
ファイル: webserver.js プロジェクト: aceway/findX
    						tc_res.on('data', function(dt) {
    							var dt_tc = dt.toString();
    							console.log("Got ticket info: " + dt_tc);
    							var ticket_obj = JSON.parse( dt_tc );
								if ('errcode' in ticket_obj && ticket_obj['errcode'] == 0 && 'ticket' in ticket_obj && 'expires_in' in ticket_obj) {
    								var ticket = ticket_obj['ticket'];
									wx_expires_in = ticket_obj['expires_in'];	

    								wx_str = Math.random().toString(36).substr(2, 15);
    								wx_ts = parseInt(new Date().getTime() / 1000);
									wx_get_tmstamp = wx_ts;	
    
    								var str = 'jsapi_ticket=' + ticket + '&noncestr=' + wx_str + '&timestamp='+ wx_ts +'&url=' + full_url;
        	      					var shaObj = new jsSHA('SHA-1', 'TEXT');
    								shaObj.update( str );
        	      					wx_sig = shaObj.getHash('HEX');
    								var tpl_var = {'wx_debug': wx_debug, 'wx_appid': wx_appid, 'wx_ts': wx_ts, 'wx_str': wx_str, 'wx_sig': wx_sig,
        	                    	               'wx_title': wx_title, 'wx_desc': wx_desc, 'wx_link': wx_link, 'wx_img':wx_img };
    								console.log( "New template var for weixin config:");
    								console.log( tpl_var );
        							res.render("index", tpl_var);  
								}
								else {
									console.log("ERROR, get ticket with access token return with error data.");
								}
    					    });
コード例 #6
0
ファイル: passport.js プロジェクト: m0o0m/disgui.se
    function(username, password, done){
      username = username.toLowerCase();
      
      var shaObj = new jssha("SHA-512", "TEXT");
      shaObj.update(password);
      var hash = shaObj.getHash("HEX");
      password = hash;
      
      User.findOne({"username": username, "password": password}, function(err, user){

        if(err) { return done(err); }
        if(!user) { return done(null, false, { message: 'Incorrect username or password' }); }

        var expires = moment().add(1, 'days').valueOf();
        var token = jwt.encode({
          iss: user._id,
          exp: expires
        }, config.jwt.secret);
        
        return done(null, {
          "user_id": user._id,
          "username": user.username,
          "created_on": user.created,
          "access_token": token,
          "expires_at": expires
        });

      });
    }
コード例 #7
0
module.exports = function hash(i) {
  const value = Math.random();

  var shaObj = new jsSHA('SHA-512', 'TEXT');
  shaObj.update(i.toString());
  return shaObj.getHash('B64');
};
コード例 #8
0
exports.authweixin = function (req, res) {
    var token = 'iloveyouforever';
    var signature = req.query.signature;
    var timestamp = req.query.timestamp;
    var echostr = req.query.echostr;
    var nonce = req.query.nonce;

    var oriArray = [];
    oriArray[0] = nonce;
    oriArray[1] = timestamp;
    oriArray[2] = token;
    oriArray.sort();
    var original = oriArray.join('');
    var jsSHA = require('jssha');
    var shaObj = new jsSHA('SHA-1', 'TEXT');
    shaObj.update(original);

    var scyptoString = shaObj.getHash('HEX');
    if (signature === scyptoString) {
        console.log('confirm and send echo back');
        res.end(echostr);
    } else {
        console.log('failed');
    }
}
コード例 #9
0
ファイル: function.js プロジェクト: ApmI00/hi-cms
function passwordMD5(str, key){
    // shaObj 对象存有多种SHA加密值: SHA-512  SHA-1  SHA-224, SHA-256, SHA-384 
    var strMd5 = utility.md5(str);
    //console.log('strMd5:'+strMd5);
    var shaObj = new jsSHA(strMd5, 'TEXT');
    //console.log("SHA-1 : "+shaObj.getHash('SHA-1', 'HEX'));

    return '' === str ? '' : utility.md5(shaObj.getHash('SHA-1', 'HEX') + key);
}
コード例 #10
0
function main() {
	while(true){
		var shaObj = new jsSHA(string, 'TEXT');
		var a = shaObj.getHash('SHA-256', 'HEX');
		if (debug) {
			console.log(num++);
		  tessel.led[0].toggle();
		}
	}
}
コード例 #11
0
ファイル: base.js プロジェクト: gappleto97/p2p-project
base.SHA256 = function SHA256(text) {
    /**
    * .. js:function:: js2p.base.SHA256(text)
    *
    *     This function returns the hex digest of the SHA256 hash of the input text
    *
    *     :param string text: A string you wish to hash
    *
    *     :returns: the hex SHA256 hash
    */
    var hash = new SHA("SHA-256", "ARRAYBUFFER");
    hash.update(new Buffer(text));
    return hash.getHash("HEX");
};
コード例 #12
0
ファイル: function.js プロジェクト: ApmI00/hi-cms
var sign = function (jsapi_ticket, url) {
  var ret = {
    jsapi_ticket: jsapi_ticket,
    nonceStr: createNonceStr(),
    timestamp: createTimestamp(),
    url: url
  };
  var string = raw(ret);
      
  var shaObj = new jsSHA(string, 'TEXT');
  ret.signature = shaObj.getHash('SHA-1', 'HEX');

  return ret;
};
コード例 #13
0
ファイル: wechat.js プロジェクト: beesui/wx_jsapi_sign
var sign = function (jsapi_ticket, url, nonce, timestamp) {
  var ret = {
    jsapi_ticket: jsapi_ticket,
    nonceStr: nonce,
    timestamp: timestamp,
    url: url
  };
  var string = raw(ret);
  var jsSHA = require('jssha');
  var shaObj = new jsSHA('SHA-1', 'TEXT');  //new jsSHA(string, 'TEXT');
  shaObj.update(string);
  ret.signature = shaObj.getHash("HEX");  //shaObj.getHash('SHA-1', 'HEX');

  return ret;
};
コード例 #14
0
ファイル: signatureHelper.js プロジェクト: loslife/YAE-wechat
            tokenHelper.refreshAccessToken(appId, function(err, access_token, jsapi_ticket){

                var ret = {
                    jsapi_ticket: jsapi_ticket,
                    nonceStr: "q2XFkAiqofKmi1Y2",
                    timestamp: 1421670369,
                    url: originUrl
                };

                var string = raw(ret);
                var shaObj = new jsSHA(string, 'TEXT');
                var sign = shaObj.getHash('SHA-1', 'HEX');

                res.send({sign:sign});

            });
コード例 #15
0
            }, function(err, docs) {
                if (err) {
                    return next({
                        status: 500,
                        message: err
                    });
                }
                if (!docs[0].isMaster && id != reqID) {
                    return next({
                        status: 401,
                        message: "Unauthorized"
                    })
                }
                if(req.body.pledge.password) {
                    var sha1 = new jsSHA("SHA-1","TEXT");
                    sha1.update(req.body.pledge.password);
                    req.body.pledge.password = sha1.getHash("HEX");
                }
                datastore.update({
                    id: id
                }, {
                    $set: req.body.pledge
                }, {}, function(err, numReplaced) {
                    if (err) {
                        return next({
                            status: 500,
                            message: err
                        });
                    }

                    datastore.find({
                        id: id
                    }, function(err, docs) {
                        if (err) {
                            return next({
                                status: 500,
                                message: err
                            });
                        }
                        res.status(200).json({
                            pledge: docs[0]
                        });
                    });
                });
            });
コード例 #16
0
ファイル: index.js プロジェクト: dongchen0502/wechat_plat
router.get('/api/auth', function (req, res, next) {
    var token = 'leondc';
    var signature = req.query.signature;
    var timestamp = req.query.timestamp;
    var echostr = req.query.echostr;
    var nonce = req.query.nonce;

    var oriArray = [nonce, timestamp, token];
    oriArray.sort();
    var original = oriArray.join('');
    var shaObj = new jsSHA(original, 'TEXT');
    var scyptoString = shaObj.getHash('SHA-1', 'HEX');

    if(scyptoString === signature){
        res.json(echostr);
    }else{
        res.json('error');
    }
});
コード例 #17
0
  create: function(req, res, next) {

    var user = new User(req.body);
    user.username = req.body.username.toLowerCase();
    
    var shaObj = new jssha("SHA-512", "TEXT");
    shaObj.update(user.password);
    var hash = shaObj.getHash("HEX");
    user.password = hash;

    user.save(function(err){

      if (err) {
        return res.status(500).send(err);
      } else {
        res.json(user);
        next();
      }

    });

  },
コード例 #18
0
ファイル: index.js プロジェクト: CaliOpen/Caliopen
const buildMessage = async ({
  method, url, params, data,
}) => {
  const sha256 = new SHA('SHA-256', 'ARRAYBUFFER');
  const methodBytes = toByteArray(method.toUpperCase());
  const builtURL = toByteArray(buildURL(url, params));

  sha256.update(methodBytes.buffer);
  sha256.update(builtURL.buffer);

  if (data instanceof UploadFileAsFormField) {
    const file = await readAsArrayBuffer(data.file);

    sha256.update(file);
  }

  if (data === Object(data)) {
    sha256.update(toByteArray(JSON.stringify(data)).buffer);
  }

  return sha256.getHash('HEX');
};
コード例 #19
0
    async getSignPackage (url) {
        if (this.base.debug) {
            console.log ("where store data?");
        }
        var jsApiTicket = await this._getJsApiTicket();
        debug ("jsApiTicket", jsApiTicket);
        var currentTimestamp = parseInt(new Date().getTime() / 1000) + '';

        var raw = function (args) {
            var keys = Object.keys(args);
            keys = keys.sort()
            var newArgs = {}; 
            keys.forEach(function (key) {
                newArgs[key.toLowerCase()] = args[key];
            }); 
            
            var string = ''; 
            for (var k in newArgs) {
                string += '&' + k + '=' + newArgs[k];
            }
            string = string.substr(1);
            return string;
        };
        
        var ret = { 
            jsapi_ticket: jsApiTicket,
            nonceStr: this._createNonceStr(),
            timestamp: currentTimestamp,
            url: url 
        };
        var string = raw(ret);
        var jsSHA = require('jssha');
        var shaObj = new jsSHA(string, 'TEXT');
        ret.signature = shaObj.getHash('SHA-1', 'HEX');
        ret.appId = this.base.appId;
        
        return ret;
    }
コード例 #20
0
ファイル: index.js プロジェクト: 964873559/NodeWexin
		app.get('/',function(req,res){
			var token="HITwhite";
		    var signature = req.query.signature;
		    var timestamp = req.query.timestamp;
		    var echostr   = req.query.echostr; 
		    var nonce     = req.query.nonce;
		    var oriArray = new Array();
		    oriArray[0] = nonce;
		    oriArray[1] = timestamp;
		    oriArray[2] = token;
		    oriArray.sort();
		    var original = oriArray.join('');
		    var jsSHA = require('jssha');
		    var shaObj = new jsSHA(original, 'TEXT');
		    var scyptoString=shaObj.getHash('SHA-1', 'HEX');
		    if(signature == scyptoString){
		     //验证成功
		     console.log('验证成功');
		    } else {
		     //验证失败
		     console.log('验证失败');
     		} 	
		});
コード例 #21
0
ファイル: signatureHelper.js プロジェクト: loslife/YAE-wechat
    tokenHelper.getTokenByAppId(appId, function(err, access_token, js_ticket, old_timestamp){
        var now_timestamp = parseInt(new Date().getTime() / 1000);
        if((now_timestamp-parseInt(old_timestamp))>=7100){
            tokenHelper.refreshAccessToken(appId, function(err, access_token, jsapi_ticket){

                var ret = {
                    jsapi_ticket: jsapi_ticket,
                    nonceStr: "q2XFkAiqofKmi1Y2",
                    timestamp: 1421670369,
                    url: originUrl
                };

                var string = raw(ret);
                var shaObj = new jsSHA(string, 'TEXT');
                var sign = shaObj.getHash('SHA-1', 'HEX');

                res.send({sign:sign});

            });
        }
        else{

            var ret = {
                jsapi_ticket: js_ticket,
                nonceStr: "q2XFkAiqofKmi1Y2",
                timestamp: 1421670369,
                url: originUrl
            };

            var string = raw(ret);
            var shaObj = new jsSHA(string, 'TEXT');
            var sign = shaObj.getHash('SHA-1', 'HEX');

            res.send({sign:sign});
        }
    });
コード例 #22
0
router.post('/', function(req, res, next) {
    var email = req.body.email;
    var sha1 = new jsSHA("SHA-1","TEXT");
    sha1.update(req.body.password)
    var password = sha1.getHash("HEX");
    datastore.loadDatabase(function(err) {
        if (err) {
            return next({
                status: 500,
                message: err
            });
        }
        datastore.find({email : email}, function(err,docs) {
        	if (err) {
        		return next({
        			status: 500,
        			message: err
        		});
        	}
        	if (docs == null || docs.length == 0 || docs[0].password != password) {
                return next({
                    status: 401
                });
        	} else {
        		var pledge = docs[0];
        		res.status(201).json({
        			success: true,
        			api_key: {
        				access_token: pledge.access_token,
                        user_id: pledge.id
        			}
        		});
        	}
        });
    });
});
コード例 #23
0
 UnTypedShaComponent.prototype.ngOnInit = function () {
     var shaObj = new jsSHA("SHA-512", "TEXT");
     shaObj.update("This is a test");
     this.hash = shaObj.getHash("HEX");
 };
コード例 #24
0
ファイル: index.test.js プロジェクト: logary/logary-js
 beforeEach(function() {
   logary = new Logary('MyWebSite', stubTarget);
   logger = getLogger(logary, 'AreaX.ComponentA');
   const hasher = new jsSHA('SHA-256', 'TEXT');
   emptyHash = hasher.getHash('HEX');
 });
コード例 #25
0
ファイル: auth.js プロジェクト: fristys/personal-node-cms
function getSha (passwd) {
      var shaObj = new jsSHA(passwd, 'TEXT'),
            hash = shaObj.getHash('SHA-512', 'HEX');

    return hash;
}
コード例 #26
0
ファイル: lang.js プロジェクト: cevio/swide
exports.sha1 = function(hash){
    let shaObj = new jsSha("SHA-1", 'TEXT');
    shaObj.update(hash);
    return shaObj.getHash("HEX");
}
コード例 #27
0
ファイル: login.js プロジェクト: CamonZ/greenmomit_st
function sha1EncryptPassword(loginToken){
  var shaObj = new jsSHA(process.env.USER_PASSWORD, 'TEXT');
  shaObj.getHash('SHA-1', 'HEX');
  var hmac = shaObj.getHMAC(loginToken, 'TEXT', 'SHA-1', 'HEX');
  return hmac;
}
コード例 #28
0
ファイル: index.js プロジェクト: xueenda/wechat-ticket
var calcSignature = function (ticket, noncestr, ts, url) {
	var str = 'jsapi_ticket=' + ticket + '&noncestr=' + noncestr + '&timestamp='+ ts +'&url=' + url;
	var shaObj = new jsSHA(str, 'TEXT');
	return shaObj.getHash('SHA-1', 'HEX');
};
コード例 #29
0
    jwt.verify(token, "ayy lmao", function(err, decoded) {
        if (err) {
            return next({
                status: 401,
                message: err
            })
        }
        var id = decoded.id;
        var isMaster = req.body.pledge.isMaster;
        var firstName = req.body.pledge.firstName;
        var lastName = req.body.pledge.lastName;
        var numberInterviewsDone = 0;
        var brothersInterviewed = [];
        var email = req.body.pledge.email;
        var sha1 = new jsSHA("SHA-1","TEXT")
        sha1.update(email);
        var password = sha1.getHash("HEX");
        var apiKeys = [];
        var errors = {};
        if ((typeof isMaster !== 'boolean') || !firstName || !lastName || !email) {
            return next({
                status: 400,
                message: "One of these is bad: " + isMaster + "," + firstName + "," + lastName + "," + email
            });
        }
        var pledge = new Pledge(isMaster,
            firstName,
            lastName,
            numberInterviewsDone,
            brothersInterviewed,
            email,
            password,
            apiKeys,
            errors);

        datastore.loadDatabase(function(err) {
            if (err) {
                return next({
                    status: 500,
                    message: err
                });
            }

            datastore.find({
                id: id
            }, function(err, docs) {
                if (err) {
                    return next({
                        status: 500,
                        message: err
                    });
                }
                if (!docs[0].isMaster) {
                    return next({
                        status: 401,
                        message: "Unauthorized"
                    })
                }
                datastore.insert(pledge, function(err) {
                    if (err) {
                        return next({
                            status: 500,
                            message: err
                        });
                    }

                    res.status(201).json({
                        pledge: pledge
                    });
                });
            });
        });
    });