john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

javascript servlet simple polyalphabetic encrypt example

//2011-07-31 johnpfeiffer javascript-servlet-simple-polyalphabetic-encrypt-example

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( "  var sum = 0;" );
        responseout.println( "  for( i=0 ; i < plaintext.length ; i++ )" );
        responseout.println( "  {" );
        responseout.println( "    sum += plaintext.charCodeAt( i );" );
        responseout.println( "    array[ i ] = sum " );
      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 ) );" );

        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

    //currently assumes encryptedText.length > 0
    private static String decryptText( String encryptedText , PrintWriter responseout )
    {
        int value = 0 ,
                unicode = 0 ,
            previousSum = 0 ;

        StringBuffer decryptedTextBuffer = new StringBuffer();
        String[] splitStringArray = encryptedText.split( ",");      //try catch on encryptedText?

        //simple polyalphabetic chaining
        for( int i=0; i < splitStringArray.length ; i++ )
        {
            value = Integer.parseInt( splitStringArray[i] );

            unicode = value - previousSum;

            previousSum += unicode;

          decryptedTextBuffer.append( (char)unicode );
        }

        return decryptedTextBuffer.toString();
    } // 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 encrypt textbox unicode decrypt java
  • java webapp upgrade hack »

Published

Aug 1, 2011

Category

java-servlet

~351 words

Tags

  • encrypt 4
  • example 36
  • java-servlet 61
  • javascript 43
  • polyalphabetic 1
  • servlet 17
  • simple 11