md5加密结合json使用异步提交iframe


jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>API上传例子</title>
	
  <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
</head>



<script type="text/javascript">
function doFileUpload(){
	form = document.getElementById("create_video_sample");
	buildJSONRequest(form);
	form.action = document.getElementById("yourAPILocation").value;
	form.submit();
}

function buildJSONRequest(form){
	
		json = form.JSONRPC
		//Construct the JSON request:
		json.value = '{"writetoken": "'+ document.getElementById("yourWriteToken").value + '","title": "'+ document.getElementById("name").value + '","describ":"'+ document.getElementById("describ").value + '","tag":"'+ document.getElementById("shortDescription").value + '","Filedata.filename":"'+ document.getElementById("Filedata").value + '"}';
		form.JSONView.value = json.value;
		form.writetoken.value=document.getElementById("yourWriteToken").value;
		form.title.value=document.getElementById("name").value;
		form.describ.value=document.getElementById("describ").value;
		form.tag.value=document.getElementById("shortDescription").value;
		form.filename.value=document.getElementById("Filedata").value;
	
}

</script>


<div style="float:left; width:450px;">
<div style="font-weight:bold;font-size:24">API上传示例</div> <br/>

<table style="width:50%">
<tr><td style="width:20%">Write Token: </td><td style="width:100%"><input id="yourWriteToken" size="55" value="Le1haiIrp60WacW-s5Hg60RTtFkbTf9q"/><br/>
</td></tr> 
<tr><td>API Location: </td><td><input id="yourAPILocation" size="55" value="http://fgdf/uc/services/rest?&method=upload" /></td></tr>
<tr><td>标题: </td><td><input type="text" id="name" name="title2" size="55" /></td>
<tr><td>标签: </td><td><input type="text" id="shortDescription" size="55" /></td></tr>
<tr><td>描述: </td><td><input id="describ" size="55" type="text"/></td></tr>
<br/> <br/>
<form id="create_video_sample" method="POST" ENCTYPE="multipart/form-data" target="postFrame">
	<!--This is where the actual json request lives, it has to come before the file input -->
	<input type="hidden" name="JSONRPC" />
	<input type="hidden" name="writetoken" />
	<input type="hidden" name="title" />
	<input type="hidden" name="describ" />
	<input type="hidden" name="tag" />
	<input type="hidden" name="filename" />
	<input type="hidden" id="time" name="time"/>
	<input type="hidden" id="clientHash" name="clientHash"/>
  
  <tr><td>File:</td><td><input type="file" name="Filedata" id="Filedata"/></td></tr>
</table><br/><br/>
    <button type="submit" id="md5bt">MD5加密</button>
    <br/>
	<button id="submitButton" onClick="doFileUpload()">Upload</button> <br/>
	<!--display the json request -->
	<fieldset>
	<legend>JSON Request</legend>
		<input name="JSONView" id="JSONView" style="width:100%;border:none"/>
	</fieldset><br/>


</form>

<br/>

<fieldset>
<legend>Response:</legend>
	<iframe id="postFrame" name="postFrame" style="width:100%;border:none"></iframe>
</fieldset>

<br/><br/>
</div>


</html>

<script type="text/javascript">
<!--
 $("#md5bt").click(function(){
	 //alert("sisisi");
	 $.post("clientMD5/work",
			 {writetoken:$("#yourWriteToken").val(),
		      title:$("#name").val(),
		      label:$("#shortDescription").val(),
		      describ:$("#describ").val()
			 },function(data,statusText){
				 //alert(data);
				 //var jsonObj=data;//返回JSON数据  
			     var jsonObj=eval("("+data+")");  
		          for(var i=0;i<jsonObj.length;i++){  
		             $("#clientHash").attr("value",jsonObj[i].clientHash);
		             $("#time").attr("value",jsonObj[i].clientTime);
		          } 
			 });
 });

//-->
</script>


Java类:

package com.app.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.client.HttpServerErrorException;
import org.springframework.web.servlet.ModelAndView;

import com.app.tools.MD5Tool;

/**
 * 
 * @author Qixuan.Chen
 */
@Controller
public class VideoController {
     
    客户端加密处理
    @RequestMapping(value="clientMD5/work",method=RequestMethod.POST)
    public ModelAndView md5encrypt(HttpServletRequest request,HttpServletResponse response) throws Exception{
        
        //ModelAndView mav=new ModelAndView();
        response.setContentType("text/html,charset=UTF-8");  
        PrintWriter out=response.getWriter(); 
        
       String writetoken= request.getParameter("writetoken");
       String title= request.getParameter("title");
       String label= request.getParameter("label");
       String depicte= request.getParameter("describ");
       
       java.util.Date date=new java.util.Date();
       SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");
       String clientTime= sdf.format(date);
       
       String secretkey= "HN098fDVJN";
       
       String result=writetoken+title+depicte+label+clientTime+secretkey;
       MD5Tool md5=new MD5Tool();
       String clientHash=md5.MD5Encrypt(result);
       
       //mav.addObject("clientHash", clientHash);
       //mav.addObject("clientTime", clientTime);
       System.out.println("===writetoken====="+writetoken);
       System.out.println("====title===="+title);
       System.out.println("====label===="+label);
       System.out.println("====secretkey===="+secretkey);
       System.out.println("====clientTime====="+clientTime);
       System.out.println("========"+clientHash);
       
       JSONObject json = new JSONObject();  
       JSONArray array = new JSONArray();  
       JSONObject member = null;  
       //for (int i = 0; i < 5; i++)  
       //{  
           member = new JSONObject();  
           member.put("clientTime", clientTime);  
           member.put("clientHash", clientHash);  
           array.add(member);  
       //}  
 
       //json.put("mydata",array);
       
       out.print(array.toString());  
       out.close(); 
   
       System.out.println("======"+member.toString());
       
       //out.print(clientTime);
       //out.print(clientHash);
    
        return null;
    }
}

加密类:

package com.app.tools;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class MD5Tool {
    
  //该方法将你输入的字符串,通过md5加密,返回一个加密後的字符串
    public static String MD5Encrypt(String inStr) {  
      
        MessageDigest md = null;  
        String outStr = null;  
        try {   

         md = MessageDigest.getInstance("MD5");         //可以选中其他的算法如SHA   
         byte[] digest = md.digest(inStr.getBytes());       
         //返回的是byet[],要转化为String存储比较方便  
         outStr = bytetoString(digest);  
        } 
        catch (NoSuchAlgorithmException nsae) {   
         nsae.printStackTrace();  
        }  
        return outStr; 
    } 

    public static String bytetoString(byte[] digest) {  

        String str = "";  
        String tempStr = "";  
        for (int i = 1; i < digest.length; i++) {   
         tempStr = (Integer.toHexString(digest[i] & 0xff));   
         if (tempStr.length() == 1) {    
          str = str + "0" + tempStr;   
         } 
         else {    
          str = str + tempStr;   
         }  
        }  
        return str.toLowerCase();

    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值