thieumao

MD5 Decrypter [Demo chữ]

Jul 20th, 2013
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.04 KB | None | 0 0
  1. package demo;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Desktop;
  5. import java.awt.GridBagConstraints;
  6. import java.awt.GridBagLayout;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.WindowAdapter;
  10. import java.awt.event.WindowEvent;
  11. import java.math.BigInteger;
  12. import java.net.URI;
  13. import java.security.MessageDigest;
  14. import java.security.NoSuchAlgorithmException;
  15. import javax.swing.JButton;
  16. import javax.swing.JFrame;
  17. import javax.swing.JLabel;
  18. import javax.swing.JMenu;
  19. import javax.swing.JMenuBar;
  20. import javax.swing.JMenuItem;
  21. import javax.swing.JOptionPane;
  22. import javax.swing.JTextField;
  23.  
  24. public class GiaiChu extends JFrame implements ActionListener {
  25.  
  26.     private GridBagLayout gb;
  27.     private GridBagConstraints gbc;
  28.     private JLabel lbForm, lbUser, lbPass, lbView;
  29.     private JTextField tfUser, tfPass;
  30.     private JButton btRegister, btCancel;
  31.     JMenuBar mymbar;
  32.     JMenu jmFile, jmHelp;
  33.  
  34.     private static String encryptMD5(String input) {
  35.         try {
  36.             MessageDigest md = MessageDigest.getInstance("MD5");
  37.             byte[] messageDigest = md.digest(input.getBytes());
  38.             BigInteger number = new BigInteger(1, messageDigest);
  39.             String hashtext = number.toString(16);
  40.             while (hashtext.length() < 32) {
  41.                 hashtext = "0" + hashtext;
  42.             }
  43.             return hashtext;
  44.         } catch (NoSuchAlgorithmException e) {
  45.             throw new RuntimeException(e);
  46.         }
  47.     }
  48.  
  49.     public void Them(Component comp, int x, int y, int rong, int cao) {
  50.         gbc = new GridBagConstraints();
  51.         gbc.gridx = x;
  52.         gbc.gridy = y;
  53.         gbc.gridwidth = rong;
  54.         gbc.gridheight = cao;
  55.         gb.setConstraints(comp, gbc);
  56.         this.add(comp);
  57.     }
  58.  
  59.     private void setMenu() {
  60.         mymbar = new JMenuBar();
  61.         jmFile = new JMenu("File");
  62.         JMenuItem exit = new JMenuItem("Exit");
  63.         exit.addActionListener(new ActionListener() {
  64.             @Override
  65.             public void actionPerformed(ActionEvent e) {
  66.                 System.exit(0);
  67.             }
  68.         });
  69.         jmFile.add(exit);
  70.         mymbar.add(jmFile);
  71.  
  72.         jmHelp = new JMenu("Help");
  73.         JMenuItem creator = new JMenuItem("Author");
  74.         creator.addActionListener(new ActionListener() {
  75.             @Override
  76.             public void actionPerformed(ActionEvent e) {
  77.                 JOptionPane.showMessageDialog(null, "Author: Thieu Mao - KSEC");
  78.             }
  79.         });
  80.         JMenuItem instruction = new JMenuItem("Website");
  81.         instruction.addActionListener(new ActionListener() {
  82.             @Override
  83.             public void actionPerformed(ActionEvent e) {
  84.                 Desktop desktop = Desktop.getDesktop();
  85.                 try {
  86.                     desktop.browse(new URI("http://thieumao.blogspot.com/"));
  87.                 } catch (Exception ex) {
  88.                     System.out.println("Error!");
  89.                 }
  90.             }
  91.         });
  92.         jmHelp.add(creator);
  93.         jmHelp.addSeparator();
  94.         jmHelp.add(instruction);
  95.         mymbar.add(jmHelp);
  96.  
  97.         setJMenuBar(mymbar);
  98.     }
  99.  
  100.     public GiaiChu(String title) {
  101.         super(title);
  102.         this.addWindowListener(new WindowAdapter() {
  103.             @Override
  104.             public void windowClosing(WindowEvent we) {
  105.                 if (JOptionPane.showConfirmDialog(null, "Are you sure ?") == JOptionPane.OK_OPTION) {
  106.                     System.exit(0);
  107.                 }
  108.                 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  109.             }
  110.         });
  111.  
  112.         setMenu();
  113.  
  114.         lbForm = new JLabel("MD5 Decrypter");
  115.         lbUser = new JLabel("MD5:");
  116.         lbPass = new JLabel("Text:");
  117.         tfUser = new JTextField(35);
  118.         tfPass = new JTextField(35);
  119.         tfPass.disable();
  120.         btRegister = new JButton("Calculate");
  121.         btCancel = new JButton("Clear");
  122.  
  123.         gb = new GridBagLayout();
  124.         this.setLayout(gb);
  125.         Them(lbForm, 1, 0, 2, 1);
  126.         Them(lbUser, 0, 1, 1, 1);
  127.         Them(tfUser, 1, 1, 2, 1);
  128.         Them(lbPass, 0, 2, 1, 1);
  129.         Them(tfPass, 1, 2, 2, 1);
  130.         Them(btRegister, 1, 3, 1, 1);
  131.         Them(btCancel, 2, 3, 1, 1);
  132.  
  133.         btRegister.addActionListener(this);
  134.         btCancel.addActionListener(this);
  135.     }
  136.  
  137.     public static void main(String[] args) throws Exception {
  138.         GiaiChu fr = new GiaiChu("MD5 Decrypter  - Thieu Mao");
  139.         fr.setSize(500, 200);
  140.         fr.setVisible(true);
  141.     }
  142.  
  143.     @Override
  144.     public void actionPerformed(ActionEvent ae) {
  145.         if (ae.getSource() == btRegister) {
  146.  
  147.             char chStart = 'a';
  148.             char chEnd = 'z';
  149.  
  150.             String str;
  151.             boolean check = true;
  152.             // 1 ki tu
  153.             char i0 = chStart;
  154.             while (check && i0 <= chEnd) {
  155.                 str = String.valueOf(i0);
  156.                 System.out.println(str);
  157.                 if (encryptMD5(str).equals(tfUser.getText())) {
  158.                     tfPass.setText(str);
  159.                     check = false;
  160.                 }
  161.                 i0++;
  162.             }
  163.             // 2 ki tu
  164.             i0 = chStart;
  165.             while (check && i0 <= chEnd) {
  166.                 char i1 = chStart;
  167.                 while (check && i1 <= chEnd) {
  168.                     str = String.valueOf(i0) + String.valueOf(i1);
  169.                     System.out.println(str);
  170.                     if (encryptMD5(str).equals(tfUser.getText())) {
  171.                         tfPass.setText(str);
  172.                         check = false;
  173.                     }
  174.                     i1++;
  175.                 }
  176.                 i0++;
  177.             }
  178.             // 3 ki tu
  179.             i0 = chStart;
  180.             while (check && i0 <= chEnd) {
  181.                 char i1 = chStart;
  182.                 while (check && i1 <= chEnd) {
  183.                     char i2 = chStart;
  184.                     while (check && i2 <= chEnd) {
  185.                         str = String.valueOf(i0) + String.valueOf(i1) + String.valueOf(i2);
  186.                         System.out.println(str);
  187.                         if (encryptMD5(str).equals(tfUser.getText())) {
  188.                             tfPass.setText(str);
  189.                             check = false;
  190.                         }
  191.                         i2++;
  192.                     }
  193.                     i1++;
  194.                 }
  195.                 i0++;
  196.             }
  197.             // 4 ki tu
  198.             i0 = chStart;
  199.             while (check && i0 <= chEnd) {
  200.                 char i1 = chStart;
  201.                 while (check && i1 <= chEnd) {
  202.                     char i2 = chStart;
  203.                     while (check && i2 <= chEnd) {
  204.                         char i3 = chStart;
  205.                         while (check && i3 <= chEnd) {
  206.                             str = String.valueOf(i0) + String.valueOf(i1) + String.valueOf(i2) + String.valueOf(i3);
  207.                             System.out.println(str);
  208.                             if (encryptMD5(str).equals(tfUser.getText())) {
  209.                                 tfPass.setText(str);
  210.                                 check = false;
  211.                             }
  212.                             i3++;
  213.                         }
  214.                         i2++;
  215.                     }
  216.                     i1++;
  217.                 }
  218.                 i0++;
  219.             }
  220.             // 5 ki tu
  221.             i0 = chStart;
  222.             while (check && i0 <= chEnd) {
  223.                 char i1 = chStart;
  224.                 while (check && i1 <= chEnd) {
  225.                     char i2 = chStart;
  226.                     while (check && i2 <= chEnd) {
  227.                         char i3 = chStart;
  228.                         while (check && i3 <= chEnd) {
  229.                             char i4 = chStart;
  230.                             while (check && i4 <= chEnd) {
  231.                                 str = String.valueOf(i0) + String.valueOf(i1) + String.valueOf(i2) + String.valueOf(i3) + String.valueOf(i4);
  232.                                 System.out.println(str);
  233.                                 if (encryptMD5(str).equals(tfUser.getText())) {
  234.                                     tfPass.setText(str);
  235.                                     check = false;
  236.                                 }
  237.                                 i4++;
  238.                             }
  239.                             i3++;
  240.                         }
  241.                         i2++;
  242.                     }
  243.                     i1++;
  244.                 }
  245.                 i0++;
  246.             }
  247.             // 6 ki tu
  248.             i0 = chStart;
  249.             while (check && i0 <= chEnd) {
  250.                 char i1 = chStart;
  251.                 while (check && i1 <= chEnd) {
  252.                     char i2 = chStart;
  253.                     while (check && i2 <= chEnd) {
  254.                         char i3 = chStart;
  255.                         while (check && i3 <= chEnd) {
  256.                             char i4 = chStart;
  257.                             while (check && i4 <= chEnd) {
  258.                                 char i5 = chStart;
  259.                                 while (check && i5 <= chEnd) {
  260.                                     str = String.valueOf(i0) + String.valueOf(i1) + String.valueOf(i2) + String.valueOf(i3) + String.valueOf(i4) + String.valueOf(i5);
  261.                                     System.out.println(str);
  262.                                     if (encryptMD5(str).equals(tfUser.getText())) {
  263.                                         tfPass.setText(str);
  264.                                         check = false;
  265.                                     }
  266.                                     i5++;
  267.                                 }
  268.                                 i4++;
  269.                             }
  270.                             i3++;
  271.                         }
  272.                         i2++;
  273.                     }
  274.                     i1++;
  275.                 }
  276.                 i0++;
  277.             }
  278.  
  279.         }
  280.         if (ae.getSource() == btCancel) {
  281.             tfUser.setText("");
  282.             tfPass.setText("");
  283.         }
  284.     }
  285. }
Advertisement
Add Comment
Please, Sign In to add comment