john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

javascript servlet encrypt textbox unicode decrypt java

// 2011-07-31 johnpfeiffer unicode "encryption" by javascript and decrypted back to characters by java servlet

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Encrypt extends HttpServlet
{
    private static final long serialVersionUID = 1L;

    protected void doGet( HttpServletRequest request, HttpServletResponse response )
      throws ServletException, IOException
    {
        String selfURL = request.getContextPath() + request.getServletPath();
        String userinput = request.getParameter( "userinput" );

        response.setContentType( "text/html" );     // MIME type
        PrintWriter responseout = response.getWriter();

        outputXHTMLHeader( "Servlet with Javascipt" , responseout );
        responseout.println( "<body>" );

        outputJavascriptFunctions( responseout );
        displaySubmitForm( selfURL , responseout );
        outputJavascript( responseout );

        if( userinput != null && !userinput.isEmpty() )     // needs code injection protection
        {
            responseout.println( "<br /><br />" + selfURL + " received input " + userinput + "<br /><br />");
            responseout.println( "decrypted: " + decryptText( userinput , responseout ) + "<br /><br />");
        }

        responseout.println( "</body>" );
        responseout.println( "</html>" );
    } //end doGet


    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {
        doGet( request, response);
    }

    private static void outputJavascriptFunctions( PrintWriter responseout )
    {
        responseout.println( "<script type=\"text/javascript\"> " );
        responseout.println( "<!--" );

    responseout.println( "function focusTextbox()" );
    responseout.println( "{" );
        responseout.println( "  var textbox = document.getElementById( 'userinput' );" );
        responseout.println( "  textbox.focus(); " );
        responseout.println( "}" );

        responseout.println( "function encryptText( plaintext )" );
        responseout.println( "{" );
        responseout.println( "  var array = new Array( plaintext.length);" );
        responseout.println( "  for( i=0 ; i < plaintext.length ; i++ )" );
        responseout.println( "  {" );
        responseout.println( "    array[ i ] = plaintext.charCodeAt( i ) " );
        // DEBUGGING responseout.println( "    alert( array[ i ] );" );
      responseout.println( "  }" );
      responseout.println( "  return array.toString();" );

        responseout.println( "}" );

        responseout.println( "function checkTextbox()" );
        responseout.println( "{" );
        responseout.println( "  var tempvalue = document.getElementById( 'userinput' ).value;" );
        responseout.println( "  alert( \"cleartext: \" + tempvalue + \" with length: \" + tempvalue.length + \" becomes \" + encryptText( tempvalue ) );" );
//DEBUGGING     responseout.println( "  alert( encryptText( tempvalue ) )" );
        responseout.println( "  document.getElementById( 'userinput' ).value = encryptText( tempvalue) ; ");
        responseout.println( "}" );

        responseout.println( "//-->" );
        responseout.println( "</script>" );

    } //end outputJavascript


    private static void outputJavascript( PrintWriter responseout )
    {
        responseout.println( "<script type=\"text/javascript\"> " );
        responseout.println( "<!--" );
        responseout.println( "  focusTextbox();" );
        responseout.println( "//-->" );
        responseout.println( "</script>" );
    } //end outputJavascript

    private static StringBuffer decryptText( String encryptedText , PrintWriter responseout )
    {
        StringBuffer decryptedText = new StringBuffer();
        String[] splitStringArray = encryptedText.split( ",");
        int unicode;
        char c;

        //DEBUGGING responseout.println( java.util.Arrays.toString( splitStringArray ) + "<br /><br />");


        for( int i=0; i < splitStringArray.length ; i++ )
        {
            //DEBUGGING responseout.println( splitStringArray[i] + "<br />");
            unicode = Integer.parseInt( splitStringArray[i] );
            c = (char)unicode ;
        //DEBUGGING responseout.println( c + "<br />");
          decryptedText.append( c );
        }

        return decryptedText;
    } // end decryptText

    private static void displaySubmitForm( String selfURL , PrintWriter responseout )
    {
        responseout.println( "<form name =\"submitbutton\" id=\"submitbutton\" action=\"" + selfURL + "\" method=\"post\" onsubmit=\"checkTextbox()\" >" );
        //responseout.println( "<form name =\"submitbutton\" id=\"submitbutton\" action=\"" + selfURL + "\" method=\"post\" onsubmit=\"return checkTextbox()\" >" );
        responseout.println( "<div><input type=\"text\" name=\"userinput\" id=\"userinput\"/></div>" );
        responseout.println( "<div><input type=\"submit\"/></div>" );
        responseout.println( "</form>" );
    } // end displaySubmitForm

    private static void outputXHTMLHeader( String title , PrintWriter responseout )
    {
        responseout.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">");
        responseout.println( "<html xmlns=\"http://www.w3.org/1999/xhtml\">" );
        responseout.println( "<head><title>" + title + "</title>" );
        responseout.println( "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />" );
        responseout.println( "</head>" );
    } //end outputXHTMLHeader

}//end class

  • « javascript servlet form textbox
  • javascript servlet simple polyalphabetic encrypt example »

Published

Jul 31, 2011

Category

java-servlet

~364 words

Tags

  • decrypt 2
  • encrypt 4
  • java 252
  • java-servlet 61
  • javascript 43
  • servlet 17
  • textbox 7
  • unicode 2