• 大小:
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: Java
  • 标签:

资源简介

文件加密与解密的java代码

资源截图

代码片段和文件信息

package vcvv;

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.io.*; 
import java.security.*; 
import javax.crypto.*; 
import javax.crypto.spec.*; 

/** 
文件名: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; 

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


FileEncrypter(){ 
this.setSize(WIDTHHEIGHT); 
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); 

}); 


/** 
加密函数 
输入: 
要加密的文件,密码(由0-F组成,共48个字符,表示3个8位的密码)如: 
AD67EA2F3BE6E5ADD368DFE03120B5DF92A8FD8FEC2F0746 
其中: 
AD67EA2F3BE6E5AD DES密码一 
D368DFE03120B5DF DES密码二 
92A8FD8FEC2F0746 DES密码三 
输出: 
对输入的文件加密后,保存到同一文件夹下增加了“.tdes“扩展名的文件中。 
*/ 
private void encrypt(File fileInString sKey){ 
try{ 
if(sKey.length() == 48){ 
byte[] bytK1 = getKeyByStr(sKey.substring(016)); 
byte[] bytK2 = getKeyByStr(sKey.substring(1632)); 
byte[] bytK3 = getKeyByStr(sKey.substring(3248)); 

FileInputStream fis = new FileInputStream(fileIn); 
byte[] bytIn = new byte[(int)fileIn.length()]; 
for(int i = 0;ibytIn[i] = (byte)fis.read(); 

//加密 
byte[] bytOut = encryptByDES(encryptByDES( 
encryptByDES(bytInbytK1)bytK2)bytK3); 
String fileOut = fileIn.getPath() + “.tdes“; 
FileOutputStream fos = new FileOutputStream(fileOut); 
for(int i = 0;ifos.write((int)bytOut[i]); 

fos.close(); 
JOptionPane.showMessageDialog( 
this“加密成功!““提示“JOptionPane.OK_OPTION); 
}else 
JOptionPane.showMessageDialog( 
this“密码长度必须等于48!““错误信息“JOptionPane.ERROR_MESSAGE); 
}catch(Exception e){ 
e.printStackTrace(); 



/**

评论

共有 条评论

相关资源