1. 程式人生 > >html中使用js進行登入md5加密提交併重定向新頁面

html中使用js進行登入md5加密提交併重定向新頁面

       在web開發中有時需要將使用者的一些資訊在客戶端加密後進行提交,然後在web後端進行驗證,可以提高頁面傳輸過程中的安全性。本例實現一個簡單的加密登入demo,例子僅僅為了演示使用,實際使用時可以根據實際要求進行修改。

1、主要實現點

1、form中加入一個隱藏的input用於提交加密後的密文;

2、在表單的submit方法中將輸入的明文密碼加密,並設定到隱藏的input中。加密使用md5.js進行實現,該檔案可自行百度;

3、在表單的submit方法中使用ajaxSubmit提交form;

本例用於演示,提交時會同時提交明文和密文密碼,實際使用時可以將明文輸入框改為不提交或者放到form表單之外即可。

2、程式碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>使用者登入</title>
	<link rel="stylesheet" type="text/css" href="/CarAppStore/css/login/style.css" />
	<link rel="stylesheet" type="text/css" href="/CarAppStore/css/login/body.css"/>
	
    <script type="text/javascript" src="/CarAppStore/js/jquery/jquery-1.9.0.min.js"></script>	    
	<script type="text/javascript" src="/CarAppStore/js/jquery/jquery-form.js"></script>	
	<script type="text/javascript" src="/CarAppStore/js/jquery/jquery-validate.js"></script>	
    <script type="text/javascript" src="/CarAppStore/js/noty/packaged/jquery.noty.packaged.min.js"></script>	
    <script type="text/javascript" src="/resource/rcs/safe/md5.js"></script>    
	<script type="text/javascript">
	 $(document).ready(function() {
		   var url="manage/updater.shtml";
		   var baseRef = window.location.href;
		   var aa = baseRef.indexOf("=");
		   if(0 < aa)  {
		       url=baseRef.substring(aa+1);
		   }	 	 
		   //ajax submit.
		   $("#formLogin").submit(function()  {
		      var tmp = hex_md5($("#password").val());
		      $("#txt_passwd").val(tmp);
		      $(this).ajaxSubmit({
			      success: function(data) { // data 儲存提交後返回的資料,一般為 json 資料
		              var obj = eval("("+data+")");  
					  if(obj.result=="ok")  {
					     window.location.assign(url);
					  }	
					  else {
	                     $.noty.consumeAlert({layout: 'top', type: 'error', dismissQueue: true,timeout:2000});
	                     alert("登入失敗,請重試!");				     
					  }
	              }
		      });  
		      return false;
		   });	           
	 });	
    </script>
</head>
<body>
<div class="container">
	<section id="content">
		<form id="formLogin" name="formLogin" action="userLogin.shtml" method="post" target="fmResult">
			<h1>使用者登入</h1>
			<div>
				<input type="text" placeholder="使用者名稱" required="" id="username" name="account"/>
			</div>
			<div>
				<input type="password" placeholder="密碼" required="" id="password" name="password"/>
			</div>
			<div class="">
				<span class="help-block u-errormessage" id="js-server-helpinfo"> </span>
			</div> 			
			<div>
				<input type="submit" value="登入" class="btn btn-primary" id="js-btn-login" style="float: left;"/>		
				<input type="reset" value="重置" class="btn btn-primary" id="js-btn-login" style="float: right;"/>
			</div>
			<div>
			   <input type="hidden" id="txt_passwd" name="passwd"/>
			</div>
		</form>
	</section><!-- content -->
	<div>
	   <iframe width="1px" height="1px" name="fmResult" style="display: none;"></iframe>
	</div>
</div>
<!-- container -->
</body>
</html>

3、執行效果

後端返回認證的json字串,如果客戶端認證通過將重定向到一個新頁面,該頁面通過位址列引數傳入,沒有時使用預定的預設值。失敗時彈出一個noty的提示框(如上圖)。