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

📄 vignere.java

📁 Vignere密码JAVA简单实现 有界面~ 简单一看就明白
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
public class Vignere extends Frame implements WindowListener,ActionListener{

	/**
	 * @param args
	 */
	public Frame f;
	public Label inform1,inform2;
	public TextField in1,in2;
	public TextArea out1;
	public TextArea out2;
	public Button b1,b2;
	public Vignere()
	{
		f=new Frame("Vignere密码");
		f.addWindowListener(this);
		f.setLayout(new GridLayout(0,2));
		f.setBounds(400, 400, 400, 200);
		in1=new TextField();
		in2=new TextField();
		out1=new TextArea();
		out2=new TextArea();
		b1=new Button("加密");
		b2=new Button("解密");
		inform1=new Label("请输入明文或者密文");
		inform2=new Label("请输入密钥(小写)");
		
		b1.addActionListener(this);
		b2.addActionListener(this);
		
		f.add(inform1);
		f.add(in1);
		f.add(inform2);
		f.add(in2);
		f.add(b1);
		f.add(out1);
		f.add(b2);
		f.add(out2);
		f.setVisible(true);
	}
	public static void main(String[] args) {
		// TODO 自动生成方法存根
		Vignere ex=new Vignere();
		ex.addWindowListener(ex);
	}

	public void windowActivated(WindowEvent e) {
		// TODO 自动生成方法存根
		
	}

	public void windowClosed(WindowEvent e) {
		// TODO 自动生成方法存根
		
	}

	public void windowClosing(WindowEvent e) {
		// TODO 自动生成方法存根
		System.exit(0);
	}

	public void windowDeactivated(WindowEvent e) {
		// TODO 自动生成方法存根
		
	}

	public void windowDeiconified(WindowEvent e) {
		// TODO 自动生成方法存根
		
	}

	public void windowIconified(WindowEvent e) {
		// TODO 自动生成方法存根
		
	}

	public void windowOpened(WindowEvent e) {
		// TODO 自动生成方法存根
		
	}

	public void actionPerformed(ActionEvent e) {
		// TODO 自动生成方法存根
		Object source=e.getSource();
		if(source==b1)
		{
			//out1.setText(in.getText());
			this.ja();
		}
		if(source==b2)
			this.je();
	}

	public void ja() {
		String income=in1.getText();
		String income2=in2.getText();
		StringBuffer c=new StringBuffer();
		char ch;
		int i,n,k=0;
		int [] inc=new int[income2.length()];
		
		for(i=0;i<income2.length();i++)		//转换密钥
		{	
			if(96<income2.charAt(i)&&income2.charAt(i)<123)
			inc[i]=(int)income2.charAt(i)-97;
			else out1.setText("错误密钥");
		}
		
		for(i=0;i<income.length();i++)
		{	
			k=k%income2.length();
			ch=income.charAt(i);
			n=(int)ch;
			ch=income.charAt(i);
			n=(int)ch;
			if(64<n&&n<91) 
			{
				c.append((char)(65+(n-65+inc[k])%26));
				k++;
			}
			else 
			if(96<n&&n<123) 
				{
				c.append((char)(97+(n-97+inc[k])%26));
				k++;
				}
			else c.append((char)(n));
		}
		out1.setText(new String(c));
		
	}
	
	public void je() {
		String income=in1.getText();
		String income2=in2.getText();
		StringBuffer c=new StringBuffer();
		char ch;
		int i,n,k=0;
		int [] inc=new int[income2.length()];
		
		for(i=0;i<income2.length();i++)		//转换密钥
		{	
			if(96<income2.charAt(i)&&income2.charAt(i)<123)
			inc[i]=(int)income2.charAt(i)-97;
			else out1.setText("错误密钥");
		}
		
		for(i=0;i<income.length();i++)
		{	
			k=k%income2.length();
			ch=income.charAt(i);
			n=(int)ch;
			ch=income.charAt(i);
			n=(int)ch;
			if(64<n&&n<91) 
				{
				c.append((char)(90-(90+inc[k]-n)%26));
				k++;
				}
			else 
			if(96<n&&n<123) 
			{ 
				c.append((char)(122-(122+inc[k]-n)%26));
				k++;
			}
			else c.append((char)(n));
		}
		out2.setText(new String(c));
	
	}
}

⌨️ 快捷键说明

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