?????English

  • Mobile Seva Facebook
  • Mobile Seva Twiiter
  • Mobile Seva Youtube
newHelpline: +91-22-26201606 Ext.325/315. +91-22-26201604 Ext.633.
Mobile Seva

How to write Java Servlet for department secure pull service?

package in.cdac.hash;

import java.io.IOException;
import java.io.PrintWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

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

/**
 * Servlet implementation class PullSecureServlet
 */
public class PullSecureServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public PullSecureServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		String finalresponse = "not Authenticated";
		PrintWriter out = response.getWriter();
		/*
		 * get the random number provided to department at the time of
		 * registration.
		 */
		String RandomNumber = "here get the random number provided to department at the time of registration.";
		String MobileNo = ESAPI.encoder().encodeForHTML(request.getParameter("mobileNumber"));
		String TimeStamp = ESAPI.encoder().encodeForHTML(request.getParameter("timeStamp"));
		String OperatorName = ESAPI.encoder().encodeForHTML(request.getParameter("operatorName"));
		String Areacode = ESAPI.encoder().encodeForHTML(request.getParameter("areaCode"));
		String Message = ESAPI.encoder().encodeForHTML(request.getParameter("message"));
		String recievedHash = ESAPI.encoder().encodeForHTML(request.getParameter("hash"));

		System.out.println("MobileNo==" + MobileNo + "\n" + "TimeStamp=="
				+ TimeStamp + "\n" + "OperatorName==" + OperatorName + "\n"
				+ "AreaCode==" + Areacode + "\n" + "Message==" + Message + "\n"
				+ "hash==" + recievedHash);

		String hashValue = hashGenerate(TimeStamp, Message, MobileNo,
				RandomNumber);
		System.out.println("final generated hash is ::;" + hashValue);
		if (hashValue.equals(recievedHash)) {
			System.out
					.println("both hash are equal and request is from authenticated source.");
			finalresponse="if Authenticated provide your response";
		} else {
			System.out.println("both hash are different");
			finalresponse="if not Authenticated provide your response";
		}

		out.println(finalresponse);
	}

	protected String hashGenerate(String timestamp, String message,
			String mobileNo, String randomNumber) {
		StringBuffer hexString = null;
		StringBuffer finalString = new StringBuffer();
		finalString.append(mobileNo.trim()).append(timestamp.trim())
				.append(message.trim()).append(randomNumber.trim());
		System.out.println("final string is ::" + finalString.toString());
		String hashGen = finalString.toString();

		MessageDigest md;
		try {
			md = MessageDigest.getInstance("SHA-512");

			md.update(hashGen.getBytes());

			byte byteData[] = md.digest();

			// convert the byte to hex format method 1
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < byteData.length; i++) {
				sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16)
						.substring(1));
			}

			//System.out.println("Hex format : " + sb.toString());

			// convert the byte to hex format method 2
			hexString = new StringBuffer();
			for (int i = 0; i < byteData.length; i++) {
				String hex = Integer.toHexString(0xff & byteData[i]);
				if (hex.length() == 1)
					hexString.append('0');
				hexString.append(hex);
			}

			//System.out.println("Hex format : " + hexString.toString());
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return hexString.toString();

	}

}