thieumao

Giao diện mã hóa

Sep 13th, 2013
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 17.55 KB | None | 0 0
  1. package thieu.mao;
  2.  
  3. import java.awt.FileDialog;
  4. import java.io.*;
  5. import javax.swing.JOptionPane;
  6.  
  7. /**
  8.  *
  9.  * @author Thieu Mao
  10.  */
  11. public class frmGUI extends javax.swing.JFrame {
  12.  
  13.     /** Creates new form frmGUI */
  14.     public frmGUI() {
  15.         initComponents();
  16.     }
  17.  
  18.    
  19.     @SuppressWarnings("unchecked")
  20.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  21.     private void initComponents() {
  22.  
  23.         tab = new javax.swing.JTabbedPane();
  24.         pnlEncrypt = new javax.swing.JPanel();
  25.         jLabel2 = new javax.swing.JLabel();
  26.         jLabel3 = new javax.swing.JLabel();
  27.         txtFile = new javax.swing.JTextField();
  28.         btnBw = new javax.swing.JButton();
  29.         btnMahoa = new javax.swing.JButton();
  30.         btnExit = new javax.swing.JButton();
  31.         pnlDeCrypt = new javax.swing.JPanel();
  32.         jLabel4 = new javax.swing.JLabel();
  33.         txtFileMH = new javax.swing.JTextField();
  34.         btnBWMH = new javax.swing.JButton();
  35.         jLabel5 = new javax.swing.JLabel();
  36.         txtKey = new javax.swing.JTextField();
  37.         btnKey = new javax.swing.JButton();
  38.         jLabel6 = new javax.swing.JLabel();
  39.         btnGiaima = new javax.swing.JButton();
  40.         jPanel1 = new javax.swing.JPanel();
  41.         jLabel1 = new javax.swing.JLabel();
  42.  
  43.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  44.         setTitle("Encryption / Decrytion");
  45.         setResizable(false);
  46.  
  47.         pnlEncrypt.setBackground(new java.awt.Color(153, 204, 255));
  48.  
  49.         jLabel2.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
  50.         jLabel2.setText("Chọn một file để mã hóa:");
  51.  
  52.         jLabel3.setText("File:");
  53.  
  54.         btnBw.setText("...");
  55.         btnBw.addActionListener(new java.awt.event.ActionListener() {
  56.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  57.                 btnBwActionPerformed(evt);
  58.             }
  59.         });
  60.  
  61.         btnMahoa.setText("Mã hóa");
  62.         btnMahoa.addActionListener(new java.awt.event.ActionListener() {
  63.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  64.                 btnMahoaActionPerformed(evt);
  65.             }
  66.         });
  67.  
  68.         btnExit.setText("Exit");
  69.         btnExit.addActionListener(new java.awt.event.ActionListener() {
  70.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  71.                 btnExitActionPerformed(evt);
  72.             }
  73.         });
  74.  
  75.         javax.swing.GroupLayout pnlEncryptLayout = new javax.swing.GroupLayout(pnlEncrypt);
  76.         pnlEncrypt.setLayout(pnlEncryptLayout);
  77.         pnlEncryptLayout.setHorizontalGroup(
  78.             pnlEncryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  79.             .addGroup(pnlEncryptLayout.createSequentialGroup()
  80.                 .addGap(144, 144, 144)
  81.                 .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  82.                 .addGap(160, 160, 160))
  83.             .addGroup(pnlEncryptLayout.createSequentialGroup()
  84.                 .addGroup(pnlEncryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  85.                     .addGroup(pnlEncryptLayout.createSequentialGroup()
  86.                         .addGap(91, 91, 91)
  87.                         .addComponent(btnMahoa)
  88.                         .addGap(60, 60, 60)
  89.                         .addComponent(btnExit, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE))
  90.                     .addGroup(pnlEncryptLayout.createSequentialGroup()
  91.                         .addGap(26, 26, 26)
  92.                         .addComponent(jLabel3)
  93.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  94.                         .addComponent(txtFile, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
  95.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  96.                         .addComponent(btnBw)))
  97.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  98.         );
  99.         pnlEncryptLayout.setVerticalGroup(
  100.             pnlEncryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  101.             .addGroup(pnlEncryptLayout.createSequentialGroup()
  102.                 .addGap(22, 22, 22)
  103.                 .addComponent(jLabel2)
  104.                 .addGap(28, 28, 28)
  105.                 .addGroup(pnlEncryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  106.                     .addComponent(txtFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  107.                     .addComponent(btnBw)
  108.                     .addComponent(jLabel3))
  109.                 .addGap(38, 38, 38)
  110.                 .addGroup(pnlEncryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  111.                     .addComponent(btnMahoa)
  112.                     .addComponent(btnExit))
  113.                 .addContainerGap(39, Short.MAX_VALUE))
  114.         );
  115.  
  116.         tab.addTab("Encrypt", pnlEncrypt);
  117.  
  118.         pnlDeCrypt.setBackground(new java.awt.Color(153, 204, 255));
  119.  
  120.         jLabel4.setText("File mã hóa");
  121.  
  122.         btnBWMH.setText("...");
  123.         btnBWMH.addActionListener(new java.awt.event.ActionListener() {
  124.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  125.                 btnBWMHActionPerformed(evt);
  126.             }
  127.         });
  128.  
  129.         jLabel5.setText("key giải mã");
  130.  
  131.         btnKey.setText("...");
  132.         btnKey.addActionListener(new java.awt.event.ActionListener() {
  133.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  134.                 btnKeyActionPerformed(evt);
  135.             }
  136.         });
  137.  
  138.         jLabel6.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
  139.         jLabel6.setForeground(new java.awt.Color(0, 0, 153));
  140.         jLabel6.setText("Chọn file cần giải mã và chọn key giải mã");
  141.  
  142.         btnGiaima.setText("Giải mã");
  143.         btnGiaima.addActionListener(new java.awt.event.ActionListener() {
  144.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  145.                 btnGiaimaActionPerformed(evt);
  146.             }
  147.         });
  148.  
  149.         javax.swing.GroupLayout pnlDeCryptLayout = new javax.swing.GroupLayout(pnlDeCrypt);
  150.         pnlDeCrypt.setLayout(pnlDeCryptLayout);
  151.         pnlDeCryptLayout.setHorizontalGroup(
  152.             pnlDeCryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  153.             .addGroup(pnlDeCryptLayout.createSequentialGroup()
  154.                 .addGroup(pnlDeCryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  155.                     .addGroup(pnlDeCryptLayout.createSequentialGroup()
  156.                         .addGap(19, 19, 19)
  157.                         .addGroup(pnlDeCryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  158.                             .addComponent(jLabel4)
  159.                             .addComponent(jLabel5))
  160.                         .addGap(18, 18, 18)
  161.                         .addGroup(pnlDeCryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  162.                             .addGroup(pnlDeCryptLayout.createSequentialGroup()
  163.                                 .addComponent(txtKey, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
  164.                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  165.                                 .addComponent(btnKey))
  166.                             .addGroup(pnlDeCryptLayout.createSequentialGroup()
  167.                                 .addComponent(txtFileMH, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
  168.                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  169.                                 .addComponent(btnBWMH))))
  170.                     .addGroup(pnlDeCryptLayout.createSequentialGroup()
  171.                         .addGap(70, 70, 70)
  172.                         .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  173.                         .addGap(43, 43, 43)))
  174.                 .addGap(32, 32, 32))
  175.             .addGroup(pnlDeCryptLayout.createSequentialGroup()
  176.                 .addGap(171, 171, 171)
  177.                 .addComponent(btnGiaima)
  178.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  179.         );
  180.         pnlDeCryptLayout.setVerticalGroup(
  181.             pnlDeCryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  182.             .addGroup(pnlDeCryptLayout.createSequentialGroup()
  183.                 .addGap(19, 19, 19)
  184.                 .addComponent(jLabel6)
  185.                 .addGap(18, 18, 18)
  186.                 .addGroup(pnlDeCryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  187.                     .addComponent(jLabel4)
  188.                     .addComponent(txtFileMH, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  189.                     .addComponent(btnBWMH))
  190.                 .addGap(18, 18, 18)
  191.                 .addGroup(pnlDeCryptLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  192.                     .addComponent(txtKey, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  193.                     .addComponent(btnKey)
  194.                     .addComponent(jLabel5))
  195.                 .addGap(18, 18, 18)
  196.                 .addComponent(btnGiaima)
  197.                 .addContainerGap(30, Short.MAX_VALUE))
  198.         );
  199.  
  200.         tab.addTab("Decrypt", pnlDeCrypt);
  201.  
  202.         jPanel1.setBackground(new java.awt.Color(153, 204, 255));
  203.  
  204.         jLabel1.setFont(new java.awt.Font("Tahoma", 1, 15)); // NOI18N
  205.         jLabel1.setForeground(new java.awt.Color(0, 0, 153));
  206.         jLabel1.setText("Thieu Mao - KSEC");
  207.  
  208.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  209.         jPanel1.setLayout(jPanel1Layout);
  210.         jPanel1Layout.setHorizontalGroup(
  211.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  212.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  213.                 .addGap(134, 134, 134)
  214.                 .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 177, Short.MAX_VALUE)
  215.                 .addGap(112, 112, 112))
  216.         );
  217.         jPanel1Layout.setVerticalGroup(
  218.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  219.             .addGroup(jPanel1Layout.createSequentialGroup()
  220.                 .addGap(62, 62, 62)
  221.                 .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  222.                 .addGap(108, 108, 108))
  223.         );
  224.  
  225.         tab.addTab("About", jPanel1);
  226.  
  227.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  228.         getContentPane().setLayout(layout);
  229.         layout.setHorizontalGroup(
  230.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  231.             .addComponent(tab, javax.swing.GroupLayout.PREFERRED_SIZE, 428, Short.MAX_VALUE)
  232.         );
  233.         layout.setVerticalGroup(
  234.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  235.             .addComponent(tab)
  236.         );
  237.  
  238.         pack();
  239.     }// </editor-fold>                        
  240.  
  241.     private void btnBwActionPerformed(java.awt.event.ActionEvent evt) {                                      
  242.         // TODO add your handling code here:
  243.         File file = getFileDialogOpen("*.*");
  244.         if(file== null)
  245.             return;
  246.         txtFile.setText(file.getAbsolutePath());
  247.     }                                    
  248.  
  249.     private void btnMahoaActionPerformed(java.awt.event.ActionEvent evt) {                                        
  250.  
  251.     }                                        
  252.  
  253.     private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {                                        
  254.         // TODO add your handling code here:
  255.         System.exit(0);
  256.     }                                      
  257.  
  258.     private void btnBWMHActionPerformed(java.awt.event.ActionEvent evt) {                                        
  259.         // TODO add your handling code here:
  260.         File file = getFileDialogOpen("*.enc");
  261.         if(file == null) return;
  262.         txtFileMH.setText(file.getAbsolutePath());
  263.     }                                      
  264.  
  265.     private void btnKeyActionPerformed(java.awt.event.ActionEvent evt) {                                      
  266.         // TODO add your handling code here:
  267.         File file = getFileDialogOpen("*.key");
  268.         if(file == null)return;
  269.         txtKey.setText(file.getAbsolutePath());
  270.     }                                      
  271.  
  272.     private void btnGiaimaActionPerformed(java.awt.event.ActionEvent evt) {                                          
  273.        
  274.     }                                        
  275.  
  276.     /**
  277.      * @param args the command line arguments
  278.      */
  279.    
  280.     // Variables declaration - do not modify                    
  281.     private javax.swing.JButton btnBWMH;
  282.     private javax.swing.JButton btnBw;
  283.     private javax.swing.JButton btnExit;
  284.     private javax.swing.JButton btnGiaima;
  285.     private javax.swing.JButton btnKey;
  286.     private javax.swing.JButton btnMahoa;
  287.     private javax.swing.JLabel jLabel1;
  288.     private javax.swing.JLabel jLabel2;
  289.     private javax.swing.JLabel jLabel3;
  290.     private javax.swing.JLabel jLabel4;
  291.     private javax.swing.JLabel jLabel5;
  292.     private javax.swing.JLabel jLabel6;
  293.     private javax.swing.JPanel jPanel1;
  294.     private javax.swing.JPanel pnlDeCrypt;
  295.     private javax.swing.JPanel pnlEncrypt;
  296.     private javax.swing.JTabbedPane tab;
  297.     private javax.swing.JTextField txtFile;
  298.     private javax.swing.JTextField txtFileMH;
  299.     private javax.swing.JTextField txtKey;
  300.     // End of variables declaration                  
  301.  
  302.     //<editor-fold defaultstate="collapsed" desc="Cac ham chuc nang">
  303.     private File getFileDialogOpen(String string) {
  304.         FileDialog fd = new FileDialog(this, "Chọn file", FileDialog.LOAD);
  305.         fd.setFile(string);
  306.         fd.setVisible(true);
  307.         if (fd.getFile()==null) {
  308.             return null;
  309.         }
  310.         File file = new File(fd.getDirectory()+fd.getFile());
  311.         if(!file.canRead()){
  312.             JOptionPane.showMessageDialog(null, "File bạn chọn không thể đọc.",
  313.                     "Error",JOptionPane.ERROR_MESSAGE);
  314.             return null;
  315.         }
  316.         return file;
  317.     }
  318.    
  319.     private byte[] readByteFile(File file) {
  320.         byte[] data=null;
  321.         try {
  322.             FileInputStream fi = new FileInputStream(file);
  323.             int c,i=0;
  324.             data = new byte[(int)file.length()];
  325.             while((c = fi.read())!=-1)
  326.             {
  327.                 data[i++] = (byte)c;
  328.             }
  329.             fi.close();
  330.         } catch (Exception e) {
  331.             JOptionPane.showMessageDialog(null, file.getName()+" không thể đọc file",
  332.                     "Error", JOptionPane.ERROR_MESSAGE);
  333.             return null;
  334.         }
  335.         return data;
  336.     }
  337.     private boolean writeByFile(String fileName, byte[]data){
  338.         File file = new File(fileName);
  339.         if(!file.canWrite()){
  340.             try {
  341.                 file.createNewFile();
  342.             } catch (Exception e) {
  343.                 JOptionPane.showMessageDialog(null, "Không thể tạo file "+file.getName(),
  344.                         "Error", JOptionPane.ERROR_MESSAGE);
  345.                 return false;
  346.             }
  347.         }
  348.         try {
  349.             FileOutputStream fo = new FileOutputStream(file);
  350.             fo.write(data);
  351.             fo.close();
  352.             return true;
  353.         } catch (Exception e) {
  354.             JOptionPane.showMessageDialog(null, "Không thể ghi file "+file.getName(),
  355.                     "Error", JOptionPane.ERROR_MESSAGE);
  356.             return false;
  357.         }
  358.     }
  359.     private Object readObjectFile(File file){
  360.         Object obj;
  361.         try {
  362.             ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
  363.             obj = (Object)ois.readObject();
  364.             ois.close();
  365.         } catch (Exception e) {
  366.             JOptionPane.showMessageDialog(null, "Không thể đọc được file "+file.getName(),
  367.                     "Error", JOptionPane.ERROR_MESSAGE);
  368.             return null;
  369.         }
  370.        
  371.         return obj;
  372.     }
  373.     private boolean writeObjectFile(String filename, Object data){
  374.         File file = new File(filename);
  375.         if(!file.canWrite()){
  376.             try {
  377.                 file.createNewFile();
  378.             } catch (Exception e) {
  379.                 JOptionPane.showMessageDialog(null, "Không thể tạo được file "+file.getName(),
  380.                         "Error", JOptionPane.ERROR_MESSAGE);
  381.                 return false;
  382.             }
  383.         }
  384.         try {
  385.             ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
  386.             oos.writeObject(data);
  387.             oos.close();
  388.             return true;
  389.         } catch (Exception e) {
  390.             JOptionPane.showMessageDialog(null, "Không thể ghi dữ liệu lên file "+ file.getName(),
  391.                     "Error",JOptionPane.ERROR_MESSAGE);
  392.             return false;
  393.         }
  394.     }
  395.     //</editor-fold>
  396. }
Advertisement
Add Comment
Please, Sign In to add comment