Create an application for encrypt and
decrypt data through servlet
Introduction - In
this generic servlet program, data is encrypt and decrypt data through servlet
Web.xml File -
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>encryptServlet</servlet-name>
<servlet-class>r4r.GenericServlet.encryptServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>encryptServlet</servlet-name>
<url-pattern>/encryptServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
Index.jsp page -
<%--
Document : index.jsp
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>r4r.co.in-GenericServlet</title>
</head>
<body>
<form>
<h1>Access GenericServlet by servlet's Name!</h1>
<a href="encryptServlet">encryptServlet</a>
</form>
</body>
</html>
Servlet Program
- /*
* Save as a encryptServlet.java
*/
package r4r.GenericServlet;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*
* @author R4R
*/
public class encryptServlet extends GenericServlet {
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
res.setContentType("text/html;charset=UTF-8");
try {
/* TODO output your page here */
res.getWriter().write("<html>");
res.getWriter().write("<head>");
res.getWriter().write("<title>" + getServletInfo() + "</title>");
res.getWriter().write("</head>");
res.getWriter().write("<body>");
res.getWriter().write("<h1>Welcome to encryptServlet</h1>");
res.getWriter().write("<form action=\"encryptServlet\">");
res.getWriter().write("Enter massage: <textarea name=\"massage\" rows=\"4\" cols=\"20\"></textarea><BR>");
res.getWriter().write("<input type=\"submit\" value=\"Encrypt Data\" />");
res.getWriter().write("<input type=\"submit\" value=\"Reset\" />");
res.getWriter().write("</form>");
res.getWriter().write("</body>");
res.getWriter().write("</html>");
/* -------------------------------------------------------- */
// Generate encryption keys with a KeyGenerator object
KeyGenerator keygenerator = KeyGenerator.getInstance("DESede"); // Triple-DES encryption
SecretKey secretkey = keygenerator.generateKey(); // Generate a key
// Obtain an object to perform encryption or decryption
Cipher cipher = Cipher.getInstance("DESede");
// Initialize the cipher object for encryption
cipher.init(Cipher.ENCRYPT_MODE, secretkey);
// Convert data into byte and encrypt it
byte[] encrypted = cipher.doFinal(req.getParameter("massage").getBytes());
// Initialize the cipher object for deEncryption
cipher.init(Cipher.DECRYPT_MODE, secretkey);
byte[] decrypted = cipher.doFinal(encrypted);
// Print output data over browser
res.getWriter().write("<BR>Encrypted text : " + new String(encrypted));
res.getWriter().write("<BR>Decrypted text : " + new String(decrypted));
} catch (Exception ex) {
Logger.getLogger(encryptServlet.class.getName()).log(Level.SEVERE, "An Exception Generate", ex);
}finally{
res.getWriter().close(); // close resource
}
}
@Override
public String getServletInfo() {
return "r4r.co.in-encryptServlet";
}
}
Output of Program
- Run application
