Newer
Older
Thesis_System / public / js / generatehash.js
@Fumichan Fumichan on 13 Nov 2019 2 KB First Commit
var id;
var passWordHash=new Array()

function result(hash){
	passWordHash.push(hash)
	//console.log(passWordHash);
}

$("#submitLogin").one("click", function(){
	$(this).text('ログイン中...');
	$(this).prop('disabled', true);
	var email = $("#inputEmail").val();
	console.log(email);
	var request = $.ajax({
		type: "POST",
		url: "/check",
		data: {
			email:  email
		}
	});
	request.done(function(salts){
		passWordHash=new Array();
		salts = JSON.parse(salts);
		if (typeof salts.login !== 'undefined') {
			window.location.href = "/";
			return;
		};
		var passWord = $("#inputPassword").val();
		var min = 5 ;
		var max = 10 ;
		var random_rounds = Math.floor( Math.random() * (max + 1 - min) ) + min ;
		try{
			var clientSalt = gensalt(random_rounds);
		}catch(err){
			console.log(err);
			return;
		};

		function hashPassword() {
			return new Promise(function (resolve, reject) {
				try{
					hashpw(
						passWord,
						salts.nounce,
						result
					);
					resolve(passWordHash[0])
				}catch(err){
					console.log(err);
					return;
				};
			});
		};

		function passwordServerSalt(){
			return new Promise(function (resolve, reject) {
				setTimeout(function () {
					var shaObj = new jsSHA("SHA-512", "TEXT");
					shaObj.setHMACKey(salts.salt, "TEXT");
					shaObj.update(passWordHash[0]);
					passWordHash.push(shaObj.getHMAC("HEX"));
					console.log(passWordHash);
				}, 3000);
			});
		};

		function passwordClientSalt(){
			return new Promise(function (resolve, reject) {
				setTimeout(function () {
					var shaObj2 = new jsSHA("SHA-512", "TEXT");
					shaObj2.setHMACKey(clientSalt, "TEXT");
					shaObj2.update(passWordHash[1]);
					passWordHash.push(shaObj2.getHMAC("HEX"));
					console.log(passWordHash);
				}, 3000);
			});
		};

		hashPassword()
		.then(passwordServerSalt())
		.then(passwordClientSalt())
		.then(function (value) {
			setTimeout(function () {
				console.log(passWordHash[2]);
				console.log(clientSalt);
				$.ajax({
					type: "POST",
					url: "/check",
					data: {
						password: passWordHash[2],
						salt: clientSalt
					}
				}).done(function(){
					window.location.href = "/";
				});
			}, 3000);
		});
	});

});