MD5文件加密和解密

举个例子: 
 

import java.awt.*;
import java.awt.event.*;

import java.io.*;

import java.security.*;

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

import javax.swing.*;


/**
文件名:FileEncrypter.java
JDK:1.40以上
说明:文件加密
加密方法:三重DES加密
加密过程:对选中的文件加密后在同文件夹下生成一个增加了".tdes"
扩展名的加密文件
解密过程:对选中的加密文件(必须有".tdes"扩展名)进行解密
*/
public class FileEncrypter extends JFrame {
    public static final int WIDTH = 550;
    public static final int HEIGHT = 200;

    FileEncrypter() {
        this.setSize(WIDTH, HEIGHT);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);

        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension screenSize = tk.getScreenSize();
        this.setLocation((screenSize.width - WIDTH) / 2,
            (screenSize.height - HEIGHT) / 2);
        this.setTitle("文件加密器(TriDES)");

        Container c = this.getContentPane();
        c.setLayout(new FlowLayout());

        final FilePanel fp = new FilePanel("文件选择");
        c.add(fp);

        final KeyPanel pp = new KeyPanel("密码");
        c.add(pp);

        JButton jbE = new JButton("加密");
        c.add(jbE);
        jbE.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent event) {
                    File file = new File(fp.getFileName());

                    if (file.exists()) {
                        encrypt(file.getAbsoluteFile(), pp.getKey());
                    } else {
                        JOptionPane.showMessageDialog(null, "请选择文件!", "提示",
                            JOptionPane.OK_OPTION);
                    }
                }
            });

        JButton jbD = new JButton("解密");
        c.add(jbD);
        jbD.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent event) {
                    File file = new File(fp.getFileName());

                    if (file.exists()) {
                        decrypt(file.getAbsoluteFile(), pp.getKey());
                    } else {
                        JOptionPane.showMessageDialog(null, "请选择文件!", "提示",
                            JOptionPane.OK_OPTION);
                    }
                }
            });
    }

    public static void main(String[] args) {
        FileEncrypter fe = new FileEncrypter();
        fe.show();
    }

    /**
    加密函数
    输入:
    要加密的文件,密码(由0-F组成,共48个字符,表示3个8位的密码)如:
    AD67EA2F3BE6E5ADD368DFE03120B5DF92A8FD8FEC2F0746
    其中:
    AD67EA2F3BE6E5AD DES密码一
    D368DFE03120B5DF DES密码二
    92A8FD8FEC2F0746 DES密码三
    输出:
    对输入的文件加密后,保存到同一文件夹下增加了".tdes"扩展名的文件中。
    */
    private void encrypt(File fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值