DES加密解密Java代码.docx

上传人:wj 文档编号:1215200 上传时间:2023-04-30 格式:DOCX 页数:6 大小:32.78KB
下载 相关 举报
DES加密解密Java代码.docx_第1页
第1页 / 共6页
DES加密解密Java代码.docx_第2页
第2页 / 共6页
DES加密解密Java代码.docx_第3页
第3页 / 共6页
DES加密解密Java代码.docx_第4页
第4页 / 共6页
DES加密解密Java代码.docx_第5页
第5页 / 共6页
DES加密解密Java代码.docx_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DES加密解密Java代码.docx

《DES加密解密Java代码.docx》由会员分享,可在线阅读,更多相关《DES加密解密Java代码.docx(6页珍藏版)》请在冰点文库上搜索。

DES加密解密Java代码.docx

//DES加密:

(1)生成密钥文件

(2)利用密钥,加密文件(3)根据密钥,对加密的文件解密

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.ObjectInputStream;

importjava.io.ObjectOutputStream;

importjava.security.Key;

importjavax.crypto.Cipher;

importjavax.crypto.KeyGenerator;

importjavax.swing.JFileChooser;

importjavax.swing.JFrame;

importjavax.swing.JMenu;

importjavax.swing.JMenuBar;

importjavax.swing.JMenuItem;

importjavax.swing.JScrollPane;

importjavax.swing.JTextArea;

importjavax.swing.ScrollPaneConstants;

publicclassDES{

publicstaticvoidmain(Stringargs[]){

DemoWindow1dw=newDemoWindow1("DES加密程序");

dw.setBounds(dw.getToolkit().getScreenSize().width/3,dw.getToolkit()

.getScreenSize().height/3,

dw.getToolkit().getScreenSize().width/3,dw.getToolkit()

.getScreenSize().height/3);

dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

dw.setVisible(true);

}

}

classDemoWindow1extendsJFrameimplementsActionListener{

JTextAreajta=newJTextArea();

//设置文本区的滚动条

intv=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

inth=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPanejsp=newJScrollPane(jta,v,h);

//菜单

JMenuBarmenuBar=newJMenuBar();

JMenumainMenu=newJMenu("DES加密");

JMenuItemgenerateItem=newJMenuItem("生成密钥");

JMenuItemencryptItem=newJMenuItem("加密信息");

JMenuItemdecryptItem=newJMenuItem("解密信息");

//构造函数

publicDemoWindow1(Stringtitle){

super(title);

//添加菜单

mainMenu.add(generateItem);

mainMenu.addSeparator();

mainMenu.add(encryptItem);

mainMenu.add(decryptItem);

menuBar.add(mainMenu);

setJMenuBar(menuBar);

//添加文本区

add(jsp);

//添加事件监听

generateItem.addActionListener(this);

encryptItem.addActionListener(this);

decryptItem.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

if(e.getSource()==generateItem){

try{

//保存密钥文件的目录路径(主要用来设置密钥的保存路径)

StringfileName=null;

//设置文件选择对话框

JFileChooserjfc=newJFileChooser();

jfc.setDialogTitle("保存密钥");

//该文件选择对话框只能打开文件目录

jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

//如果选中,则获取选择的目录名称

if(jfc.showSaveDialog(this)==JFileChooser.APPROVE_OPTION){

fileName=jfc.getSelectedFile().getPath();

}

//如果没有选择目录,则退出

if(fileName==null){

return;

}

//判断目录是否存在,如果不存在,则创建

Filefile=newFile(fileName);

if(!

file.exists())

file.mkdir();

//创建DES密钥生成器

KeyGeneratorkeyGen=KeyGenerator.getInstance("DES");

//采用56位DES密钥

keyGen.init(56);

//生成DES密钥

Keykey=keyGen.generateKey();

System.out.println(key);

//将密钥存储到指定目录下的“密钥.dat"文件中

ObjectOutputStreamout=newObjectOutputStream(

newFileOutputStream(fileName+"/密钥.dat"));

out.writeObject(key);

out.close();

}catch(Exceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}elseif(e.getSource()==encryptItem){

try{

//读取密钥文件的完整路径

StringfileName=null;

//设置文件选择对话框

JFileChooserjfc=newJFileChooser();

jfc.setDialogTitle("导入密钥文件");

//如果选中,则获取选择文件的完整路径

if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){

fileName=jfc.getSelectedFile().getPath();

}

//如果没有选择文件,则退出

if(fileName==null){

return;

}

//读取密钥文件

ObjectInputStreamin=newObjectInputStream(

newFileInputStream(fileName));

Keykey=(Key)in.readObject();

//创建DES加密器

Ciphercipher=Cipher.getInstance("DES");

//设置加密模式

cipher.init(Cipher.ENCRYPT_MODE,key);

//生成密文,存放在cipherText字节数组中

byte[]cipherText=cipher.doFinal(jta.getText().getBytes(

"UTF-8"));

//设置文件选择对话框

jfc=newJFileChooser();

jfc.setDialogTitle("保存加密文本内容");

//如果选中,则获取选择的文件的完整路径

if(jfc.showSaveDialog(this)==JFileChooser.APPROVE_OPTION){

fileName=jfc.getSelectedFile().getPath();

}

//如果没有选择文件,则退出

if(fileName==null)

return;

//将密文存储到指定文件中

FileOutputStreamfos=newFileOutputStream(fileName,false);

fos.write(cipherText);

fos.close();

}catch(Exceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}elseif(e.getSource()==decryptItem){

try{

//读取密钥文件的完整路径

StringfileName=null;

//设置文件选择对话框

JFileChooserjfc=newJFileChooser();

jfc.setDialogTitle("打开加密文本内容");

if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){

fileName=jfc.getSelectedFile().getPath();

}

//如果没有选择文件,就退出

if(fileName==null)

return;

//读取密文

FileInputStreamfis=newFileInputStream(fileName);

byte[]cipherText=newbyte[fis.available()];

fis.read(cipherText);

fis.close();

//设置文件选择对话框

jfc=newJFileChooser();

jfc.setDialogTitle("导入密钥文件");

if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){

fileName=jfc.getSelectedFile().getPath();

}

//如果没有选择文件,则退出

if(fileName==null)

return;

//读取密钥

ObjectInputStreamin=newObjectInputStream(

newFileInputStream(fileName));

Keykey=(Key)in.readObject();

//创建DES加密器

Ciphercipher=Cipher.getInstance("DES");

//设置解密模式

cipher.init(Cipher.DECRYPT_MODE,key);

//生成原文,存放在cipherText字节数组中

byte[]plainText=cipher.doFinal(cipherText);

//将原文显示在文本区中

jta.setText(newString(plainText,"UTF-8"));

}catch(Exceptione1){

e1.printStackTrace();

}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2