import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.swing.JFileChooser;
import javax.crypto.Cipher;
import javax.crypto.CipherOutputStream;
import javax.crypto.spec.SecretKeySpec;
import javax.swing.JOptionPane;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ImgCry1 extends HttpServlet {  // JDK 1.6 and above only
 
   // The doGet() runs once per HTTP GET request to this servlet.
   @Override
   public void doGet(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
      // Set the MIME type for the response message
      response.setContentType("text/html");
      // Get a output writer to write the response message into the network socket
      PrintWriter out = response.getWriter();
	  
	  
	  
	  
	  String a = request.getParameter("img");
	  String b = "C:\\Users\\SMP\\Desktop\\" + a;
	  try {
         out.println("<html>");
         out.println("<head><title>Image Encryption</title></head>");
         out.println("<body>");
         out.println("<h1>Image Encryption</h1>");
         // Echo client's request information
         out.println("<p>Request URL: " + a + "</p>");
         // Generate a random number upon each request
         out.println("<p>Random Number: <strong>" + Math.random() + "</strong></p>");    

	  
	  
		  try{
				FileInputStream file = new FileInputStream(b);
				FileOutputStream outStream = new FileOutputStream("Encrypt.jpg");
				byte k[]="CooL2116NiTh5252".getBytes();
				SecretKeySpec key = new SecretKeySpec(k, "AES");
				Cipher enc = Cipher.getInstance("AES");
				enc.init(Cipher.ENCRYPT_MODE, key);
				CipherOutputStream cos = new CipherOutputStream(outStream, enc);
				byte[] buf = new byte[1024];
				int read;
				while((read=file.read(buf))!=-1){
					cos.write(buf,0,read);
				}
				file.close();
				outStream.flush();
				cos.close();
				out.println("The file encrypted successfully in bin folder");
				out.println("<form method='get' action='http://localhost:9999/password/imgcry2'><br><input type='submit' value='Decrypt'></form>");
			}catch(Exception e){
				out.println(""+ e);
			}
			out.println("</body></html>");
		}finally {
         out.close();  // Always close the output writer
		}
	}
}