DES加密解密Java代码_第1页
DES加密解密Java代码_第2页
DES加密解密Java代码_第3页
DES加密解密Java代码_第4页
DES加密解密Java代码_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

〃DES加密:(1)生成密钥文件(2)利用密钥,加密文件(3)依据密钥,对加密的文件解

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

publicclassDES{

publicstaticvoidmain(Stringargs[]){

DemoWindowldw=newDemoWindowl("DES加密程序”);

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

.getScreenSizef).height/3,

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

.getScreenSizef).height/3);

dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

dw.setVisible(true);

classDemoWindowlextendsJFrameimplementsActionListener{

JTextAreajta=newJTextArea();

//设置文本区的滚动条

intv=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

inth=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPanejsp=newJScrollPanefjta,v,h);

//菜单

JMenuBarmenuBar=newJMenuBarf);

JMenumainMenu=newJMenu("DES加密”);

JMenultemgenerateitem=newJMenultem("生成密钥");

JMenultemencryptltem=newJMenultem(“力口密信息");

JMenultemdecryptltem=newJMenultem("解密信息");

//构造函数

publicDemoWindowl(Stringtitle){

super(title);

//添加菜单

mainMenu.add(generateltem);

mainMenu.addSeparatorf);

mainMenu.add(encryptltem);

mainMenu.add(decryptltem);

menuBar.add(mainMenu);

setJMenuBar(menuBar);

//添加文本区

add(jsp);

//添加事务监听

generateitem.addActi3nUstener(this);

encryptltem.addActionListener(this);

decryptltem.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

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

try(

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

StringfileName=null;

//设置文件选择对话框

JFileChooserjfc=newJFileChooserf);

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

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

jfc.setFileSeectionMode(JFileChooser.DIRECTORIESONLY);

〃假如选中,则获得选择的书目名称

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

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

)

//假如没有选择书目,则退出

if(fileName==null){

return;

)

〃推断书目是否存在,假如不存在,则创建

Filefile=newFile(fileName);

if(!file.exists())

file.mkdirf);

//创建DES密钥生成器

KeyGeneratorkeyGen=KeyGenerator.getlnstance("DES");

//采纳56位DES密钥

keyGen.init(56);

//生成DES密钥

Keykey=keyGen.generateKey();

(key);

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

ObjectOutputStreamout=newObjectOutputStream(

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

out.writeObject(key);

out.close();

}catch(Exceptionel){

//TODOAuto-generatedcatchblock

el.printStackTrace();

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

try(

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

StringfileName=null;

//设置文件选择对话框

JFileChooserjfc=newJFileChooserf);

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

〃假如选中,则获得选择文件的完整路径

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

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

)

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

if(fileName==null){

return;

)

//读取密钥文件

ObjectlnputStreamin=newObjectlnputStream(

newFilelnputStream(fileName));

Keykey=(Key)in.readObject();

//创建DES加密器

Ciphercipher=Cipher.getlnstance("DES");

//设置加密模式

cipher.init(Cipher.ENCRYPT_MODE,key);

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

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

"LTF-8"));

//设置文件选择对话框

jfc=newJFileChooser();

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

//假如选中,则获得选择的文件的完整路径

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

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

)

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

if(fileName==null)

return;

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

FileOutputS:reamfos=newFileOutputStream("ileName,false);

fos.write(cipherText);

fos.close();

}catch(Exceptionel){

//TODOAuto-generatedcatchblock

el.printStackTrace();

)

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

try(

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

StringfileName=null;

//设置文件选择对话框

JFileChooserjfc=newJFileChooserf);

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

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

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

)

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

if(fileName==null)

return;

//读取密文

FilelnputStreamfis=newFilelnputStream(fileName);

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

fis.readtcipberText);

fis.close();

//设置文件选择对话框

jfc=newJFileChooser();

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

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

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

)

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

if(fileName==null)

return;

//读

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论