首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

AES加、解密程序和java界面程序整合的有关问题!分不够可再加!

2011-12-28 
AES加、解密程序和java界面程序整合的问题!急--在线等!!分不够可再加!!1、java界面程序如下:publicclassINSE

AES加、解密程序和java界面程序整合的问题!急--在线等!!分不够可再加!!
1、java界面程序如下:

public   class   INSE6110   extends   javax.swing.JDialog   {
       
        /**   Creates   new   form   INSE6110   */
        public   INSE6110(java.awt.Frame   parent,   boolean   modal)   {
                super(parent,   modal);
                initComponents();
        }
       
        /**   This   method   is   called   from   within   the   constructor   to
          *   initialize   the   form.
          *   WARNING:   Do   NOT   modify   this   code.   The   content   of   this   method   is
          *   always   regenerated   by   the   Form   Editor.
          */
        //   <editor-fold   defaultstate= "collapsed "   desc= "   Generated   Code   "> //GEN-BEGIN:initComponents
        private   void   initComponents()   {
                jLabel1   =   new   javax.swing.JLabel();
                jLabel3   =   new   javax.swing.JLabel();
                jLabel4   =   new   javax.swing.JLabel();
                jLabel5   =   new   javax.swing.JLabel();
                jLabel6   =   new   javax.swing.JLabel();
                jButton1   =   new   javax.swing.JButton();
                jButton2   =   new   javax.swing.JButton();
                jTextField1   =   new   javax.swing.JTextField();
                jTextField2   =   new   javax.swing.JTextField();
                jTextField3   =   new   javax.swing.JTextField();

                setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
                jLabel1.setText( " ");

                jLabel3.setText( " ");

                jLabel4.setText( "Please   input   the   message   that   want   to   be   encrypted: ");

                jLabel5.setText( "Encrypted   message: ");

                jLabel6.setText( "Decrypted   message: ");

                jButton1.setText( "Encrypt ");
                jButton1.addMouseListener(new   java.awt.event.MouseAdapter()   {
                        public   void   mouseClicked(java.awt.event.MouseEvent   evt)   {


                                jButton1MouseClicked(evt);
                        }
                });
                jButton1.addActionListener(new   java.awt.event.ActionListener()   {
                        public   void   actionPerformed(java.awt.event.ActionEvent   evt)   {
                                jButton1ActionPerformed(evt);
                        }
                });

                jButton2.setText( "Decrypt ");

                javax.swing.GroupLayout   layout   =   new   javax.swing.GroupLayout(getContentPane());
                getContentPane().setLayout(layout);
                layout.setHorizontalGroup(
                        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                                .addContainerGap()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabel5,   javax.swing.GroupLayout.DEFAULT_SIZE,   131,   Short.MAX_VALUE)
                                                .addGap(359,   359,   359))
                                        .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabel6,   javax.swing.GroupLayout.DEFAULT_SIZE,   javax.swing.GroupLayout.DEFAULT_SIZE,   Short.MAX_VALUE)
                                                .addGap(391,   391,   391))
                                        .addGroup(layout.createSequentialGroup()
                                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,   false)


                                                        .addComponent(jLabel1,   javax.swing.GroupLayout.Alignment.LEADING,   javax.swing.GroupLayout.DEFAULT_SIZE,   javax.swing.GroupLayout.DEFAULT_SIZE,   Short.MAX_VALUE)
                                                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING,   layout.createSequentialGroup()
                                                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                                        .addComponent(jLabel4)
                                                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,   false)
                                                                                .addComponent(jTextField2,   javax.swing.GroupLayout.Alignment.LEADING)
                                                                                .addComponent(jTextField3,   javax.swing.GroupLayout.Alignment.LEADING)
                                                                                .addComponent(jTextField1,   javax.swing.GroupLayout.Alignment.LEADING,   javax.swing.GroupLayout.PREFERRED_SIZE,   290,   javax.swing.GroupLayout.PREFERRED_SIZE)))
                                                                .addGap(15,   15,   15)
                                                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,   false)
                                                                        .addComponent(jButton2,   javax.swing.GroupLayout.DEFAULT_SIZE,   javax.swing.GroupLayout.DEFAULT_SIZE,   Short.MAX_VALUE)


                                                                        .addComponent(jButton1,   javax.swing.GroupLayout.DEFAULT_SIZE,   88,   Short.MAX_VALUE))))
                                                .addGap(20,   20,   20))
                                        .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabel3,   javax.swing.GroupLayout.DEFAULT_SIZE,   javax.swing.GroupLayout.DEFAULT_SIZE,   Short.MAX_VALUE)
                                                .addGap(225,   225,   225))))
                );
                layout.setVerticalGroup(
                        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(jLabel1)
                                .addGap(4,   4,   4)
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(jTextField1,   javax.swing.GroupLayout.PREFERRED_SIZE,   javax.swing.GroupLayout.DEFAULT_SIZE,   javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jButton1))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)


                                        .addComponent(jTextField2,   javax.swing.GroupLayout.PREFERRED_SIZE,   javax.swing.GroupLayout.DEFAULT_SIZE,   javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jButton2))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel6)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextField3,   javax.swing.GroupLayout.PREFERRED_SIZE,   javax.swing.GroupLayout.DEFAULT_SIZE,   javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel3)
                                .addContainerGap(46,   Short.MAX_VALUE))
                );
                java.awt.Dimension   screenSize   =   java.awt.Toolkit.getDefaultToolkit().getScreenSize();
                setBounds((screenSize.width-431)/2,   (screenSize.height-267)/2,   431,   267);
        }//   </editor-fold> //GEN-END:initComponents

        private   void   jButton1ActionPerformed(java.awt.event.ActionEvent   evt)   {
        }//GEN-LAST:event_jButton1ActionPerformed

        private   void   jButton1MouseClicked(java.awt.event.MouseEvent   evt)   {//GEN-FIRST:event_jButton1MouseClicked
        }//GEN-LAST:event_jButton1MouseClicked
       
        /**
          *   @param   args   the   command   line   arguments
          */


[解决办法]
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new INSE6110(new javax.swing.JFrame(), true).setVisible(true);
}
});
}

// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;


private javax.swing.JTextField jTextField3;
// End of variables declaration//GEN-END:variables

}
2、AES加、解密程序如下:

import java.security.*;

import javax.crypto.*;
import javax.crypto.spec.*;

//import type.lang.UniWriter;

import java.io.*;

/**
* This program generates a AES key, retrieves its raw bytes, and
* then reinstantiates a AES key from the key bytes.
* The reinstantiated key is used to initialize a AES cipher for
* encryption and decryption.
*/

public class AES {

/**
* Turns array of bytes into string
*
* @param bufArray of bytes to convert to hex string
* @returnGenerated hex string
*/
public static String asHex (byte buf[]) {
StringBuffer strbuf = new StringBuffer(buf.length * 2);
int i;

for (i = 0; i < buf.length; i++) {
if (((int) buf[i] & 0xff) < 0x10)
strbuf.append( "0 ");

strbuf.append(Long.toString((int) buf[i] & 0xff, 16));
}

return strbuf.toString();
}

public static void main(String[] args) throws Exception {

String message= "This is just an example ";

// Get the KeyGenerator

KeyGenerator kgen = KeyGenerator.getInstance( "AES ");
kgen.init(128); // 192 and 256 bits may not be available


// Generate the secret key specs.
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
System.out.println(raw);
System.out.println(asHex(raw));

/*UniWriter uw = new UniWriter( "C:\\aes_key.txt ");
uw.println(raw);
uw.close();*/
BufferedWriter out = new BufferedWriter(new FileWriter( "C:\\aes_key2.txt "));
out.write(asHex(raw));
out.close();




SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES ");


// Instantiate the cipher

Cipher cipher = Cipher.getInstance( "AES ");

cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
String s = "haha ";
byte[] encrypted = cipher.doFinal(s.getBytes());
//cipher.doFinal((args.length == 0 ?
// "This is just an example " : args[0]).getBytes());
System.out.println( "encrypted string: " + asHex(encrypted));

cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] original =
cipher.doFinal(encrypted);
String originalString = new String(original);
System.out.println( "Original string: " +
originalString + " " + asHex(original));
//int i = 0;
while (true) {
//System.out.println(i++);
}
}
}

3、要实现的功能如下:

A、把AES程序整合到JAVA界面程序中,形成一个.java文件
B、具体流程为:当在界面中“jTextField1”输入框中输入待加密的字符串后,按“Encrypt”按钮后,执行AES加密操作;加密结果显示在“jTextField2”输入框中;此时点击“Decrypt”按钮,“jTextField2”输入框中的内容用AES解密后,显示在“jTextField3”中


[解决办法]
让AES成为INSE6110的内部类呗。
public class INSE6110 extends javax.swing.JDialog {
。。。。
。。。。
。。。。
}
class AES {
。。。
。。。
}

它们在同一个java文件里,相应的button调用相应的功能就可以了。

[解决办法]
upppp


[解决办法]
传递一个AES的实例到INSE6110中,并保存在一个实例变量里

然后在INSE6110的界面代码里就可以调用AES实例来进行加密和解密了
[解决办法]
能不能说的具体点?做好可以根据我写的代码来具体说明一下, 多谢阿!
[解决办法]
让AES成为INSE6110的内部类呗??
AES类里原来的main函数怎末办?
public static String asHex (byte buf[]) 这个怎末办??

热点排行