【入门】Java信息摘要(MD5与SHA)

import javax.swing.*;
import java.awt.*;

/**
 * @author love-bella
 */
public class Main extends JFrame {
    private JLabel label1,label2;
    private JTextArea area;
    private JTextField field;
    private JButton md5,sha;

    private Main(){
        label1 = new JLabel("原文:");
        label2 = new JLabel("摘要:");
        area = new JTextArea(10,20);
        field = new JTextField(35);
        md5 = new JButton("MD5");
        sha = new JButton("SHA");
        init();
    }
    private void init(){
        JPanel north,center,south;
        north = new JPanel();
        north.setLayout(new BorderLayout());
        north.add(label1,BorderLayout.NORTH);
        JScrollPane jsp = new JScrollPane(area);
        north.add(jsp,BorderLayout.CENTER);
        center = new JPanel();
        center.add(label2);
        center.add(field);
        south = new JPanel();
        south.add(md5);
        south.add(sha);
        add(north,BorderLayout.NORTH);
        add(center,BorderLayout.CENTER);
        add(south,BorderLayout.SOUTH);
        reg();
        showMe();
    }
    private void reg(){
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        md5.addActionListener(e ->{
            Core core = new Core("md5");
            field.setText(core.get(area.getText()));
        });
        sha.addActionListener(e ->{
            Core core = new Core("sha");
            field.setText(core.get(area.getText()));
        });
    }
    private void showMe(){
        setTitle("SHA/MD5 Translate");
        setLocationRelativeTo(null);
        pack();
        setResizable(false);
        setVisible(true);
    }

    public static void main(String []args){
        new Main();
    }
}
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author love-bella
 */
class Core {
    private MessageDigest digest;
    Core(String type){
        try{
            digest = MessageDigest.getInstance(type);
        }catch(NoSuchAlgorithmException e){
            e.printStackTrace();
        }
    }

    String get(String msg){
        byte[] input = msg.getBytes();
        byte[] temp = digest.digest(input);
        return bytesToHex(temp);
    }

    private static String bytesToHex(byte[] bytes) {
        StringBuilder buffer = new StringBuilder();
        int digital;
        for (byte aByte : bytes) {
            digital = aByte;
            if (digital < 0) {
                digital += 256;
            }
            if (digital < 16) {
                buffer.append("0");
            }
            buffer.append(Integer.toHexString(digital));
        }
        return buffer.toString().toUpperCase();
    }
}


效果图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值