⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keypanel.java

📁 使用三重DES加密算法和替代加密算法对文件进行加密的小程序
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; 
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;

public class KeyPanel extends JPanel
{
	KeyPanel(String str)
	{
		JLabel label = new JLabel(str);
		JTextField fileText = new JTextField(34);
		JButton chooseButton = new JButton("随机产生");
		this.add(label);
		this.add(fileText);
		this.add(chooseButton);
		clickAction ca = new clickAction(this);
		chooseButton.addActionListener(ca);
	}
		public String getKey()
		{
			JTextField jtf = (JTextField)this.getComponent(1);
			return jtf.getText();
		}
	private class clickAction implements ActionListener
	{
		int b;
		private Component cmpt;
		clickAction(Component c)
		{
			cmpt = c;
		}
		public void actionPerformed(ActionEvent event)
		{
			if(FileEncrypter.button == null)
			JOptionPane.showMessageDialog(null,"请选择加密方式!","提示",JOptionPane.OK_OPTION);
			else
			{
				if (FileEncrypter.button.getText().equals("替代加密算法"))
				{
		      b=(int)(Math.random()*25)+1;
		      JPanel jp = (JPanel)cmpt;
		      JTextField jtf = (JTextField)jp.getComponent(1);
		      String bytK = Integer.toString(b);
		      jtf.setText(bytK);
		    }
				else if (FileEncrypter.button.getText().equals("三重DES加密算法"))
				{
			    try
			    {
				    KeyGenerator kg = KeyGenerator.getInstance("DES");
				    kg.init(56);
				    Key ke = kg.generateKey();
				    byte[] bytK1 = ke.getEncoded();
				    ke = kg.generateKey();
				    byte[] bytK2 = ke.getEncoded();
				    ke = kg.generateKey();
				    byte[] bytK3 = ke.getEncoded();
				
				    JPanel jp = (JPanel)cmpt;
				    JTextField jtf = (JTextField)jp.getComponent(1);
				    jtf.setText(getByteStr(bytK1)+getByteStr(bytK2)+getByteStr(bytK3));
			    }
			    catch(Exception e)
			    {
				    e.printStackTrace();
			    }
		    }
		  }
		}
		private String getByteStr(byte[] byt)
		{
			String strRet = "";
			for(int i=0;i<byt.length;i++)
			{
				strRet += getHexValue((byt[i]&240)/16);
				strRet += getHexValue(byt[i]&15);
			}
			return strRet;
		}
		private String getHexValue(int s)
		{
			String sRet=null;
			switch (s)
			{
				case 0: sRet = "0";break; 
        case 1: sRet = "1";break; 
        case 2: sRet = "2";break; 
        case 3: sRet = "3";break; 
        case 4: sRet = "4";break; 
        case 5: sRet = "5";break; 
        case 6: sRet = "6";break; 
        case 7: sRet = "7";break; 
        case 8: sRet = "8";break; 
        case 9: sRet = "9";break; 
        case 10: sRet = "A";break; 
        case 11: sRet = "B";break; 
        case 12: sRet = "C";break; 
        case 13: sRet = "D";break; 
        case 14: sRet = "E";break; 
        case 15: sRet = "F";
			}
			return sRet;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -