加密登录

1、login.html
 

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<title>登录</title>
<link href="css/login.css" type="text/css" rel="stylesheet">
</head>
<body>

	<div class="login">
		<div class="message">后台管理系统</div>
		<div id="darkbannerwrap"></div>

		<form id="login-form" method="post" onsubmit="return false;">
			<input id="username" name="username" placeholder="用户名" type="text"
				autocomplete="off">
			<hr class="hr15">
			<input id="password" name="password" placeholder="密码" type="password"
				autocomplete="off">
			<hr class="hr15">
			<button style="width: 100%;" type="submit"
				onclick="login(this)">登录</button>
			<hr class="hr20">
			<span id="info" style="color: red"></span>
		</form>


	</div>

</body>
<script src="js/libs/jquery-2.1.1.min.js"></script>
<script src="js/common.js"></script>
<script src="js/aes.js">
</script>
<script src="js/pad-zeropadding-min.js"></script>
<script type="text/javascript">
	// if (top != self) {
	// 	parent.location.href = '/login.html';
	// }

	// var user = loginInfo();
	// if (user != "") {
	// 	location.href = '/';
	// }

	function login(obj) {
		$(obj).attr("disabled", true);

		var username = $.trim($('#username').val());
		var password = $.trim($('#password').val());
		if (username == "" || password == "") {
			$("#info").html('用户名或者密码不能为空');
			$(obj).attr("disabled", false);
		} else {
            var user=getAES(username);
            console.log('user:'+user);
            var pwd=getAES(password);
            console.log('password:'+pwd);
			$.ajax({
                type : 'post',
                url : '/home.do',
                data : {username:user,password:pwd},
                dataType:"json",
                success : function(data) {
                    // if(data.code!="200"){
                     //    parent.location.href = '/login.html';
                     //    return false;
					// }
                    // alert(data.data.token.token);
					alert(data);
                    // location.href = '/';
                },
				error : function(xhr, textStatus, errorThrown) {
					var msg = xhr.responseText;
					alert(msg);
					console.log(getDAes(msg));
					// var response = JSON.parse(msg);
					// $("#info").html(response.message);
					// $(obj).attr("disabled", false);
				}
			});
		}
	}
</script>
</html>

2、common.js
 

//form序列化为json
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

//获取url后的参数值
function getUrlParam(key) {
	var href = window.location.href;
	var url = href.split("?");
	if(url.length <= 1){
		return "";
	}
	var params = url[1].split("&");
	
	for(var i=0; i<params.length; i++){
		var param = params[i].split("=");
		if(key == param[0]){
			return param[1];
		}
	}
}

// 检查登录状态
function loginInfo(){
	var user = "";
    $.ajax({
        type : 'get',
        url : '/sys/login.do',
        async: false,
        success : function(data){
            if(data != null && data != ""){
                user = data;
            }
        },
        error: function(xhr,textStatus,errorThrown){
            var msg = xhr.responseText;
            var response = JSON.parse(msg);
            $("#info").html(response.message);
        }
    });
    
    return user;
}

function getAesString(data,key,iv){//加密
    var key  = CryptoJS.enc.Utf8.parse(key);
    var iv   = CryptoJS.enc.Utf8.parse(iv);
    var encrypted =CryptoJS.AES.encrypt(data,key,
        {
            iv:iv,
            mode:CryptoJS.mode.CBC,
            padding:CryptoJS.pad.ZeroPadding
        });
    return encrypted.toString();    //返回的是base64格式的密文
}
function getDAesString(encrypted,key,iv){//解密
    var key  = CryptoJS.enc.Utf8.parse(key);
    var iv   = CryptoJS.enc.Utf8.parse(iv);
    var decrypted =CryptoJS.AES.decrypt(encrypted,key,
        {
            iv:iv,
            mode:CryptoJS.mode.CBC,
            padding:CryptoJS.pad.ZeroPadding
        });
    return decrypted.toString(CryptoJS.enc.Utf8);
}

function getAES(data){ //加密
    var key  = 'dufy20170329java';  //密钥
    var iv   = 'dufy20170329java';
    var encrypted =getAesString(data,key,iv); //密文
    var encrypted1 =CryptoJS.enc.Utf8.parse(encrypted);
    return encrypted;
}

function getDAes(data){//解密
    var key  = 'dufy20170329java';  //密钥
    var iv   = 'dufy20170329java';
    var decryptedStr =getDAesString(data,key,iv);
    return decryptedStr;
}

猜你喜欢

转载自blog.csdn.net/aiyongbo123456/article/details/85918414
今日推荐