www.pudn.com > a_software_for_AES_encode_and_decode_with_java.rar > AES.java


import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
 
public class AES extends JFrame 
	implements ActionListener 
{ 
 
	/** 
	 * @param args 
	 */ 
	private int[][] S_box =  
	{ 
			{ 99,124,119,123,242,107,111,197, 48,  1,103, 43,254,215,171,118}, 
			{202,130,201,125,250, 89, 71,240,173,212,162,175,156,164,114,192}, 
			{183,253,147, 38, 54, 63,247,204, 52,165,229,241,113,216, 49, 21}, 
			{  4,199, 35,195, 24,150,  5,154,  7, 18,128,226,235, 39,178,117}, 
			{  9,131, 44, 26, 27,110, 90,160, 82, 59,214,179, 41,227, 47,132}, 
			{ 83,209,  0,237, 32,252,177, 91,106,203,190, 57, 74, 76, 88,207}, 
			{208,239,170,251, 67, 77, 51,133, 69,249,  2,127, 80, 60,159,168}, 
			{ 81,163, 64,143,146,157, 56,245,188,182,218, 33, 16,255,243,210}, 
			{205, 12, 19,236, 95,151, 68, 23,196,167,126, 61,100, 93, 25,115}, 
			{ 96,129, 79,220, 34, 42,144,136, 70,238,184, 20,222, 94, 11,219}, 
			{224, 50, 58, 10, 73,  6, 36, 92,194,211,172, 98,145,149,228,121}, 
			{231,200, 55,109,141,213, 78,169,108, 86,244,234,101,122,174,  8}, 
			{186,120, 37, 46, 28,166,180,198,232,221,116, 31, 75,189,139,138}, 
			{112, 62,181,102, 72,  3,246, 14, 97, 53, 87,185,134,193, 29,158}, 
			{225,248,152, 17,105,217,142,148,155, 30,135,233,206, 85, 40,223}, 
			{140,161,137, 13,191,230, 66,104, 65,153, 45, 15,176, 84,187, 22} 
	}; 
	 
	private int [][] S_box_1 =  
	{ 
			{82, 9,  106,213, 48, 54,165, 56,191, 64,163,158,129,243,215,251}, 
			{124,227,57, 130,155, 47,255,135,52, 142, 67, 68,196,222,233,203}, 
			{84, 123,148,50, 166,194, 35, 61,238, 76,149, 11, 66,250,195, 78},  
			{8,  46, 161,102, 40,217, 36,178,118, 91,162, 73,109,139,209, 37}, 
			{114,248,246,100,134,104,152, 22,212,164, 92,204, 93,101,182,146}, 
			{108,112, 72, 80,253,237,185,218, 94, 21, 70, 87,167,141,157,132}, 
			{144,216,171,  0,140,188,211, 10,247,228, 88,  5,184,179,69,   6}, 
			{208, 44, 30,143,202, 63, 15,  2,193,175,189,  3,  1, 19,138,107}, 
			{ 58,145, 17, 65, 79,103,220,234,151,242,207,206,240,180,230,115}, 
			{150,172,116, 34,231,173, 53,133,226,249, 55,232, 28,117,223,110}, 
			{ 71,241, 26,113, 29, 41,197,137,111,183, 98, 14,170, 24,190, 27}, 
			{252, 86, 62, 75,198,210,121, 32,154,219,192,254,120,205, 90,244}, 
			{ 31,221,168, 51,136,  7,199, 49,177, 18, 16, 89, 39,128,236, 95}, 
			{ 96, 81,127,169, 25,181, 74, 13, 45,229,122,159,147,201,156,239}, 
			{160,224, 59, 77,174, 42,245,176,200,235,187, 60,131, 83,153, 97}, 
			{ 23, 43,  4,126,186,119,214, 38,225,105, 20, 99, 85, 33, 12,125} 
	}; 
	private int[] key =  
	{ 
			0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 
	}; 
	private int[] Code = 
	{ 
			0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 
	}; 
 
	private int[] extend_key = new int[176]; 
	private int[] Rcon =  
	{ 
			0,1,2,4,8,16,32,64,128,27,54 
	}; 
 
	 
	public void KeyExpansion(){ 
		int [] temp = new int[4]; 
		 
		for(int i = 0; i < 16; i ++){ 
			extend_key [i] = key[i];			 
		} 
		for(int i = 4; i < 44; i ++){ 
			for(int j = 0; j < 4; j ++) 
				temp[j] = extend_key[(i - 1) * 4 + j]; 
			if( i % 4 == 0){ 
				RotWord(temp); 
				for(int j = 0; j < 4; j ++){ 
					temp[j] = SubWord(temp[j]); 
					if( j==0 ) 
						temp[j] = temp[j]^Rcon[i/4]; 
				} 
			} 
			for(int j = 0; j < 4; j++){ 
				extend_key[(i - 0) * 4 + j] = extend_key[(i - 4) * 4 + j]^temp[j]; 
				StringBuffer buf = new StringBuffer(20); 
			} 
		} 
	} 
	 
	/* 
	 * Routate shift left the Array 
	 */ 
	public void RotWord (int temp[]){ 
		int a; 
		a = temp[0]; 
		temp[0] = temp[1]; 
		temp[1] = temp[2]; 
		temp[2] = temp[3]; 
		temp[3] = a; 
	} 
	 
	/* 
	 *	replace the num recording to the S box  
	 */ 
	public int SubWord(int a) 
	{ 
		int x = a / 16; 
		int y = a % 16; 
		return S_box[x][y]; 
	} 
	/* 
	 * replace the num recording to the S box 1 
	 */ 
	public int SubWord_1(int a) 
	{ 
		int x = a / 16; 
		int y = a % 16; 
		return S_box_1[x][y]; 
	} 
	 
	/* 
	 * int type transite into Hex 
	 */ 
	   public String encodeHex(int integer) {  
	        StringBuffer buf = new StringBuffer(2);  
 
	            if (((int) integer & 0xff) < 0x10) {  
	                buf.append("0");  
	            }  
	            buf.append(Long.toString((int) integer & 0xff, 16));  
	        return buf.toString();  
	    } 
	    
	   /* 
	    *function of encode  
	    */ 
	   public void Encode() 
	   { 
		   /* 
		    * initiate the code, that is the code ^ the key 
		    */ 
		   /* 
		   //////////////////////////////////////////////////// 
		   //System.out.print('\n'); 
		   System.out.print("encode=========================\n"); 
		   for(int k = 0; k < 16; k ++){ 
			   System.out.print((encodeHex(Code[k]))+","); 
		   } 
		   System.out.print('\n'); 
		   //////////////////////////////////////////////////// 
		   */ 
		   for(int i = 0; i < 16; i ++){ 
			   Code[i] = extend_key[i]^Code[i]; 
		   } 
		   for(int time = 1; time < 11; time ++) 
			   Loop(time); 
	   } 
	   public void Loop(int time) 
	   { 
 
		   for(int i = 0; i < 16; i ++) 
		   { 
			   Code[i] = SubWord(Code[i]); 
		   } 
 
		   ShiftRow(); 
 
		   if(time!=10) 
			   MixColumn(); 
		   
		   for(int i = 0; i < 16; i ++) 
		   { 
			   Code[i] = Code[i]^extend_key[time*16+i]; 
		   } 
		   /* 
		   //////////////////////////////////////////////////// 
		   //System.out.print('\n'); 
		   for(int k = 0; k < 16; k ++){ 
			   System.out.print((encodeHex(Code[k]))+","); 
		   } 
		   System.out.print('\n'); 
		   //////////////////////////////////////////////////// 
		   */ 
	   } 
	   public void ShiftRow() 
	   { 
		   int temp; 
		   temp = Code[1]; 
		   Code[1] = Code[5]; 
		   Code[5] = Code[9]; 
		   Code[9] = Code[13]; 
		   Code[13] = temp; 
 
		   temp = Code[2]; 
		   Code[2] = Code[10]; 
		   Code[10] = temp; 
		   temp = Code[6]; 
		   Code[6] = Code[14]; 
		   Code[14] = temp; 
	    
		   temp = Code[3]; 
		   Code[3] = Code[15]; 
		   Code[15] = Code[11]; 
		   Code[11] = Code[7]; 
		   Code[7] = temp; 
	   } 
	    
	   public void MixColumn() 
	   { 
		   int[] temp = new int[16]; 
		   for(int i = 0 ;i < 4 ; i ++) 
		   { 
			   temp[i*4] = Multi(Code[i*4],2) ^ Multi(Code[i*4+1],3) ^  
		   			Multi(Code[i*4+2],1) ^ Multi(Code[i*4+3],1); 
			   temp[i*4+1] = Multi(Code[i*4],1) ^ Multi(Code[i*4+1],2) ^  
			   		Multi(Code[i*4+2],3) ^ Multi(Code[i*4+3],1); 
			   temp[i*4+2] = Multi(Code[i*4],1) ^ Multi(Code[i*4+1],1) ^  
	   				Multi(Code[i*4+2],2) ^ Multi(Code[i*4+3],3); 
			   temp[i*4+3] = Multi(Code[i*4],3) ^ Multi(Code[i*4+1],1) ^  
	   				Multi(Code[i*4+2],1) ^ Multi(Code[i*4+3],2); 
		   } 
		   for(int i = 0; i < 16; i ++) 
		   { 
			   Code[i] = temp[i]; 
		   } 
	   } 
	   public int Multi(int a,int b) 
	   { 
	           int[]  temp = new int[8]; 
			   int[]  flag = new int[8]; 
			   int c = b; 
			   for(int i= 0;i < 8;i++) 
			   { 
			        int c1,c2; 
			        c1 = c / 2; 
			        c2 = c % 2; 
	                if(c2 == 1)flag[i] = 1; 
	                else flag[i] = 0; 
	                c = c1; 
	                if(i==0)temp[i] = a; 
	                else{ 
	                    temp[i] = temp[i-1]*2; 
	                    if(temp[i]>255)temp[i] = (temp[i]%256)^27; 
	                     
	                } 
	           } 
	           a = 0; 
	           for(int i = 0; i < 8; i++) 
	               a = a^(temp[i]*flag[i]); 
	           return a; 
			    
		   } 
		    
	    
 
	   /* 
	    * function of Decode 
	    */ 
	   public void Decode() 
	   { 
		   int i,j; 
		   /* 
		   //////////////////////////////////////////////////// 
		   //System.out.print('\n'); 
		   System.out.print("decode============================\n"); 
		   for(int k = 0; k < 16; k ++){ 
			   System.out.print((encodeHex(Code[k]))+","); 
		   } 
		   System.out.print('\n'); 
		   ////////////////////////////////////////////////////	 
		   */ 
		   for(i = 0,j = 160 ; i < 16; i ++,j ++){ 
			   Code[i] = extend_key[j]^Code[i]; 
			   //System.out.print(encodeHex(Code[i])); 
		   } 
 
		   for(int time = 1; time < 11; time ++) 
			   Loop_1(time); 
	   } 
	    
	   public void Loop_1(int time) 
	   { 
		   ShiftRow_1(); 
 
		    
		   for(int i = 0; i < 16; i ++) 
		   { 
			   Code[i] = SubWord_1(Code[i]); 
		   } 
		    
		   for(int i = 0; i < 16; i ++) 
		   { 
			   Code[i] = Code[i]^extend_key[160-time*16+i]; 
		   } 
 
		   if(time!=10) 
			   MixColumn_1(); 
		    
		   /* 
		   //////////////////////////////////////////////////// 
		   //System.out.print('\n'); 
		   for(int k = 0; k < 16; k ++){ 
			   System.out.print((encodeHex(Code[k]))+","); 
		   } 
		   System.out.print('\n'); 
		   ////////////////////////////////////////////////////	 
		   */  
	   } 
	   public void ShiftRow_1() 
	   { 
		   int temp; 
		   temp = Code[13]; 
		   Code[13] = Code[9]; 
		   Code[9] = Code[5]; 
		   Code[5] = Code[1]; 
		   Code[1] = temp; 
 
		   temp = Code[2]; 
		   Code[2] = Code[10]; 
		   Code[10] = temp; 
		   temp = Code[6]; 
		   Code[6] = Code[14]; 
		   Code[14] = temp; 
	    
		   temp = Code[3]; 
		   Code[3] = Code[7]; 
		   Code[7] = Code[11]; 
		   Code[11] = Code[15]; 
		   Code[15] = temp; 
	   } 
	    
	   public void MixColumn_1() 
	   { 
		   int[] temp = new int[16]; 
		   for(int i = 0 ;i < 4 ; i ++) 
		   { 
			   temp[i*4] = Multi(Code[i*4],14) ^ Multi(Code[i*4+1],11) ^  
		   			Multi(Code[i*4+2],13) ^ Multi(Code[i*4+3],9); 
			   temp[i*4+1] = Multi(Code[i*4],9) ^ Multi(Code[i*4+1],14) ^  
			   		Multi(Code[i*4+2],11) ^ Multi(Code[i*4+3],13); 
			   temp[i*4+2] = Multi(Code[i*4],13) ^ Multi(Code[i*4+1],9) ^  
	   				Multi(Code[i*4+2],14) ^ Multi(Code[i*4+3],11); 
			   temp[i*4+3] = Multi(Code[i*4],11) ^ Multi(Code[i*4+1],13) ^  
	   				Multi(Code[i*4+2],9) ^ Multi(Code[i*4+3],14); 
		    
		   } 
		   for(int i = 0; i < 16; i ++) 
		   { 
			   Code[i] = temp[i]; 
		   } 
	   } 
	   private JTextArea original, keytext, to_code, to_original; 
	   private JButton encode,decode; 
	   //private JLabel label; 
	    
	   public void getCode(int code_num[]) 
	   { 
		   for(int i = 0; i < 16; i ++) 
		   { 
			   Code[i] = code_num[i]; 
		   } 
	   } 
	    
	   public void outCode(int code_num[]) 
	   { 
		   	for(int i = 0; i < 16; i ++) 
		   		code_num[i] = Code[i]; 
	   } 
	    
	   public void getKey(int key_num[]) 
	   { 
		   for(int i = 0; i < 16; i++) 
		   { 
			   key[i] = 0; 
			   Code[i] = 0; 
		   } 
		   for(int i = 0; i < 16; i ++) 
		   { 
			   key[i] = key_num[i]^key[i]; 
		   } 
	   } 
	   public void actionPerformed(ActionEvent e) 
	   { 
		    
		   if(e.getSource() == encode) 
		   { 
			   /* 
			    * get the keys(the keys is initialized with all 0s.) 
			    * if the keys are shorter or longer than 16 bits,  
			    * it add '0' to the tail 
			    * until it mod(16) equals to 0 . 
			    */ 
			   int i,j; 
			   int []code_num = new int[16]; 
			   int []key_num = new int[16]; 
			   String temp_key = keytext.getText(); 
			   String temp_code = original.getText(); 
			   int len_key = temp_key.length(); 
			   int len_code = temp_code.length(); 
 
			   if(len_key%16!=0) 
			   { 
				   for(i = len_key%16; i < 16; i ++) 
				   { 
					   temp_key += " "; 
				   } 
			   } 
			   for(i = 0, j = 0; j < temp_key.length(); j ++, i ++) 
			   { 
				   key_num[i] = temp_key.charAt(i); 
				   if(i == 15) 
				   { 
					   getKey(key_num); 
					   i = -1; 
				   } 
			   } 
			    
			   KeyExpansion(); 
			    
			   /* 
			    * get the code 
			    * if the keys are shorter or longer than 16 bits,  
			    * it add '0' to the tail 
			    * until it mod(16) equals to 0 
			    */ 
			   ////////////////////////////////////////// 
			    
			   String output = ""; 
			    
			   if(len_code%16!=0) 
			   { 
				   for(i = len_code%16; i < 16; i++) 
					   temp_code += " "; 
			   } 
			   for(i = 0,j = 0; j < temp_code.length(); j ++, i ++) 
			   { 
				    
				   code_num[i] = (temp_code.charAt(j)); 
				    
				   if(i == 15) 
				   { 
					   getCode(code_num); 
					   Encode(); 
					   outCode(code_num); 
					   for(i = 0; i < 16; i ++) 
					   { 
						   /* 
						    * change the ASCII code into character 
						    */ 
						   //String aa = String.valueOf(char(code_num[i])); 
						   output += Character.toChars(code_num[i])[0]; 
					   } 
					   to_code.setText(output); 
					   i = -1; 
				   } 
			   } 
		   } 
		    
		   /* 
		    *  Button event of decode 
		    */ 
		   if(e.getSource() == decode) 
		   { 
			   /* 
			    * get the keys(the keys is initialized with all 0s.) 
			    * if the keys are shorter or longer than 16 bits,  
			    * it add '0' to the tail 
			    * until it mod(16) equals to 0 . 
			    */ 
			   int i,j; 
			   int []code_num = new int[16]; 
			   int []key_num = new int[16]; 
			   String temp_key = keytext.getText(); 
			   String temp_code = to_code.getText(); 
			   int len_key = temp_key.length(); 
			   int len_code = temp_code.length(); 
			   //char shit; 
			   //System.out.print(len_code); 
			   if(len_key%16!=0) 
			   { 
				   for(i = len_key%16; i < 16; i ++) 
				   { 
					   temp_key += " "; 
				   } 
			   } 
			   for(i = 0, j = 0; j < temp_key.length(); j ++, i ++) 
			   { 
				   key_num[i] = temp_key.charAt(i); 
				   if(i == 15) 
				   { 
					   getKey(key_num); 
					   i = -1; 
				   } 
			   } 
			    
			   KeyExpansion(); 
			    
			   /* 
			    * get the code 
			    * if the keys are shorter or longer than 16 bits,  
			    * it add '0' to the tail 
			    * until it mod(16) equals to 0 
			    */ 
			   ////////////////////////////////////////// 
			    
			   String output = ""; 
			    
			   if(len_code%16!=0) 
			   { 
				   for(i = len_code%16; i < 16; i++) 
					   temp_code += " "; 
			   } 
			   for(i = 0,j = 0; j < temp_code.length(); j ++, i ++) 
			   { 
				    
				   code_num[i] = (temp_code.charAt(j)); 
				   if(i == 15) 
				   { 
					   getCode(code_num); 
					   Decode(); 
					   outCode(code_num); 
					    
 
					    
					   for(i = 0; i < 16; i ++) 
					   { 
						   output += Character.toChars(code_num[i])[0]; 
						   //output += String.valueOf(code_num[i]); 
					   } 
					   to_original.setText(output); 
					   i = -1; 
				   } 
			   } 
		   } 
	   } 
	/* 
	 * construct function 
	 */ 
	public AES() 
	{ 
		Container container = getContentPane(); 
		container.setLayout(new GridLayout(1,1,5,5)); 
		//container.addMouseListener(this); 
		//container.addMouseMotionListener(this); 
		 
		JPanel p1 = new JPanel(); 
		//p1.addMouseListener(this); 
		p1.setLayout(new GridLayout(4,1,5,5)); 
		 
		//p1.add(label = new JLabel()); 
		JPanel p1_1 = new JPanel(); 
		p1_1.setLayout(new BorderLayout()); 
		JPanel p1_2 = new JPanel(); 
		p1_2.setLayout(new GridLayout(2,1,5,5)); 
		JPanel p1_3 = new JPanel(); 
		p1_3.setLayout(new BorderLayout()); 
		JPanel p1_4 = new JPanel(); 
		p1_4.setLayout(new BorderLayout()); 
		 
		//p1_1.add(new JLabel(" 明文"),BorderLayout.NORTH); 
		p1_1.setBorder(BorderFactory.createTitledBorder("明文  (暂时无法加密汉字)")); 
		p1_1.add(original = new JTextArea(),BorderLayout.CENTER); 
		 
		JPanel p1_2_2 = new JPanel(); 
		p1_2_2.setLayout(new BorderLayout()); 
		p1_2_2.setBorder(BorderFactory.createTitledBorder("密钥  (暂时无法使用汉字做密钥)")); 
		//p1_2_2.add(new JLabel("密钥"),BorderLayout.NORTH); 
		p1_2_2.add(keytext = new JTextArea(),BorderLayout.CENTER); 
		p1_2.add(p1_2_2); 
		 
		JPanel p1_2_1 = new JPanel(); 
		p1_2_1.setLayout(new FlowLayout()); 
		p1_2_1.add(encode = new JButton("加密")); 
		p1_2_1.add(decode = new JButton("解密")); 
		p1_2.add(p1_2_1); 
		 
		//p1_3.add(new JLabel(" 密文"),BorderLayout.NORTH); 
		p1_3.setBorder(BorderFactory.createTitledBorder("密文  (暂时无法解密汉字)")); 
		p1_3.add(to_code = new JTextArea(),BorderLayout.CENTER); 
		 
		p1_4.setBorder(BorderFactory.createTitledBorder("原文  (比较)")); 
		//p1_4.add(new JLabel(" 原文(比较)"),BorderLayout.NORTH); 
		p1_4.add(to_original = new JTextArea(),BorderLayout.CENTER); 
		 
		p1.add(p1_1); 
		p1.add(p1_2); 
		p1.add(p1_3); 
		p1.add(p1_4); 
		 
		container.add(p1); 
		 
		original.setLineWrap(true); 
		p1_1.add(new JScrollPane(original)); 
		to_code.setLineWrap(true); 
		p1_3.add(new JScrollPane(to_code)); 
		to_original.setLineWrap(true); 
		p1_4.add(new JScrollPane(to_original)); 
		keytext.setLineWrap(true); 
		p1_2_2.add(new JScrollPane(keytext)); 
 
		encode.addActionListener(this); 
		decode.addActionListener(this); 
 
		JMenuBar bar = new JMenuBar(); 
		//JPanel menu = new JPanel(); 
		//menu.setLayout(new GridLayout(1,10)); 
 
		JMenu theFile = new JMenu("文件"); 
		JMenu editMenu = new JMenu("编辑"); 
		JMenu helpMenu = new JMenu("帮助"); 
		 
		JMenuItem firstMenu = new JMenuItem("退出"); 
		 
		JMenuItem cutMenu = new JMenuItem("剪切"); 
		JMenuItem copyMenu = new JMenuItem("复制"); 
		JMenuItem pasteMenu = new JMenuItem("粘贴"); 
		 
		JMenuItem secondMenu = new JMenuItem("关于"); 
		 
		editMenu.add(cutMenu); 
		editMenu.add(copyMenu); 
		editMenu.add(pasteMenu); 
		 
		theFile.add(firstMenu); 
		 
		helpMenu.add(secondMenu); 
		 
		bar.add(theFile); 
		bar.add(editMenu); 
		bar.add(helpMenu); 
		 
		setJMenuBar(bar); 
		setSize(300,300); 
		 
		cutMenu.addActionListener(new ActionListener(){ 
			public void actionPerformed(ActionEvent e) 
			{ 
				original.cut(); 
				keytext.cut(); 
				to_code.cut(); 
				to_original.cut(); 
			} 
		}); 
		 
		copyMenu.addActionListener(new ActionListener(){ 
			public void actionPerformed(ActionEvent e) 
			{ 
				original.copy(); 
				keytext.copy(); 
				to_code.copy(); 
				to_original.copy(); 
			} 
		}); 
		 
		pasteMenu.addActionListener(new ActionListener(){ 
			public void actionPerformed(ActionEvent e) 
			{ 
				//if(original.getCursor() == DEFAULT_CURSOR) 
					original.paste(); 
				System.out.print(original.getCursor()); 
				keytext.paste(); 
				to_code.paste(); 
				to_original.paste(); 
			} 
		}); 
		 
		firstMenu.addActionListener(new ActionListener(){ 
			public void actionPerformed(ActionEvent e){ 
				System.exit(0); 
			} 
		}); 
		 
		secondMenu.addActionListener(new ActionListener(){ 
			public void actionPerformed(ActionEvent e){ 
				JFrame newF = new JFrame("关于"); 
				JPanel p1 = new JPanel(); 
				 
				p1.setLayout(new GridLayout(5,1,10,5)); 
				p1.add(new JLabel("版本AES 1.0")); 
				p1.add(new JLabel("创建于 2006/6/3")); 
				p1.add(new JLabel("创建者:计算机B班  李德苑  033511063")); 
				p1.add(new JLabel("E-mail:ldyhot@163.com")); 
				p1.add(new JLabel("说明:暂时无法加密与解密汉字")); 
 
				newF.add(p1); 
				newF.setSize(400,200); 
				 
				Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
				int screenWidth = screenSize.width; 
				int screenHeight = screenSize.height; 
				 
				Dimension frameSize = newF.getSize(); 
				int x = (screenWidth - frameSize.width)/2; 
				int y = (screenHeight - frameSize.height)/2; 
				newF.setLocation(x,y); 
				//newF.setVisible(true); 
				newF.show(); 
			} 
		}); 
	} 
 
	public static void main(String[] args) { 
		// TODO Auto-generated method stub 
		AES test = new AES(); 
		test.setTitle("AES"); 
		test.setSize(600,600); 
		test.setVisible(true); 
		 
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
		int screenWidth = screenSize.width; 
		int screenHeight = screenSize.height; 
		 
		Dimension frameSize = test.getSize(); 
		int x = (screenWidth - frameSize.width)/2; 
		int y = (screenHeight - frameSize.height)/2; 
		 
		test.setLocation(x,y); 
		 
		test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		//System.out.println("Welcome to java"); 
	}  
}