DES加密解密Java代码文档格式.docx
《DES加密解密Java代码文档格式.docx》由会员分享,可在线阅读,更多相关《DES加密解密Java代码文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
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){
//读取密钥文件的完整路径
导入密钥文件"
//如果选中,则获取选择文件的完整路径
if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){
//如果没有选择文件,则退出
//读取密钥文件
ObjectInputStreamin=newObjectInputStream(
newFileInputStream(fileName));
Keykey=(Key)in.readObject();
//创建DES加密器
Ciphercipher=Cipher.getInstance("
//设置加密模式
cipher.init(Cipher.ENCRYPT_MODE,key);
//生成密文,存放在cipherText字节数组中
byte[]cipherText=cipher.doFinal(jta.getText().getBytes(
"
UTF-8"
jfc=newJFileChooser();
保存加密文本内容"
//如果选中,则获取选择的文件的完整路径
if(fileName==null)
//将密文存储到指定文件中
FileOutputStreamfos=newFileOutputStream(fileName,false);
fos.write(cipherText);
fos.close();
}elseif(e.getSource()==decryptItem){
打开加密文本内容"
//如果没有选择文件,就退出
//读取密文
FileInputStreamfis=newFileI