亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myframe.java

?? 計算機安全的實驗:加密
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
			chooser.setCurrentDirectory(new File("."));
			int i = chooser.showSaveDialog(this);
			if (i == JFileChooser.APPROVE_OPTION) {
				ObjectOutputStream oos;
				try {
					oos = new ObjectOutputStream(
							new FileOutputStream(chooser.getSelectedFile()));
					oos.writeObject(deskey);
					oos.flush();
					oos.close();
				} catch (FileNotFoundException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				} catch (IOException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				}
				
			}
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
	}

}

class DH_Alice extends JPanel implements ActionListener{
	JTextArea myInfoArea = new JTextArea();
	JButton kpairGen=new JButton("KpairGen");
	JButton desKeyGen=new JButton("DesKeyGen");
	JButton openBobPKey=new JButton("OpenBobPKey");
	JButton openKpair=new JButton("OpenKpair");
	KeyPair aliceKpair=null;
	PublicKey bobPubKey=null;
	DH_Alice(){
		this.setLayout(new BorderLayout());
		JPanel buttons=new JPanel();
		buttons.add(kpairGen);
		buttons.add(openBobPKey);
		buttons.add(openKpair);
		buttons.add(desKeyGen);
		this.add(new JScrollPane(myInfoArea),BorderLayout.CENTER);
		this.add(buttons,BorderLayout.SOUTH);
		kpairGen.addActionListener(this);
		desKeyGen.addActionListener(this);
		openBobPKey.addActionListener(this);
		openKpair.addActionListener(this);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		String command = e.getActionCommand();
		if (command.equals("KpairGen")) {
			myInfoArea.setText("第一步:Alice產生 DH密鑰對并保存密鑰對及公鑰\n"+
			"下一步:Bob從alice發送來的公鑰中讀出DH密鑰對的初始參數生成Bob的DH密鑰對");
			KpairGen();
		} else if (command.equals("OpenBobPKey")) {
			myInfoArea.setText("第五步:Alice讀出bob的公鑰\n"+
			"下一步:Alice讀出自己的密鑰對");
			openBobPKey();
		} else if (command.equals("OpenKpair")) {
			myInfoArea.setText("第六步:Alice讀出自己的密鑰對\n"+
			"下一步:Alice根據bob的公鑰生成本地的DES密鑰");
			openKpair();
		} else if(command.equals("DesKeyGen")){
			myInfoArea.setText("最后一步:Alice根據bob的公鑰生成本地的DES密鑰\n");
			desKeyGen();
		}
	}
	private void desKeyGen() {
		KeyAgreement aliceKeyAgree;
		try {
			aliceKeyAgree = KeyAgreement.getInstance("DH");
			aliceKeyAgree.init(aliceKpair.getPrivate());
			aliceKeyAgree.doPhase(bobPubKey, true);
			SecretKey aliceDesKey = aliceKeyAgree.generateSecret("DES");
			myInfoArea.append("aliceDesKey: "+Arrays.toString(aliceDesKey.getEncoded()));
			JFileChooser chooser = new JFileChooser();
			chooser.setCurrentDirectory(new File("."));
			chooser.setDialogTitle("aliceDesKeyGen");
			int i = chooser.showSaveDialog(this);
			if (i == JFileChooser.APPROVE_OPTION) {
				ObjectOutputStream oos;
				try {
					oos = new ObjectOutputStream(
							new FileOutputStream(chooser.getSelectedFile()));
					oos.writeObject(aliceDesKey);
					oos.flush();
					oos.close();
				} catch (FileNotFoundException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				} catch (IOException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				}
				
			}
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (InvalidKeyException e) {
			e.printStackTrace();
		}
		
	}
	private void openKpair() {
		JFileChooser chooser = new JFileChooser();
		chooser.setCurrentDirectory(new File("."));
		int i = chooser.showOpenDialog(this);
		chooser.setDialogTitle("Open Alice KeyPair");
		if (i == JFileChooser.APPROVE_OPTION) {
			File file = chooser.getSelectedFile();
			try {
				ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
				aliceKpair=(KeyPair)ois.readObject();
				ois.close();
			} catch (FileNotFoundException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			} catch (IOException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			} catch (ClassNotFoundException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			}
		}
	}
	private void openBobPKey() {
		JFileChooser chooser = new JFileChooser();
		chooser.setCurrentDirectory(new File("."));
		int i = chooser.showOpenDialog(this);
		chooser.setDialogTitle("open bob public key");
		if (i == JFileChooser.APPROVE_OPTION) {
			File file = chooser.getSelectedFile();
			try {
				ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
				bobPubKey=(PublicKey)ois.readObject();
				ois.close();
			} catch (FileNotFoundException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			} catch (IOException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			} catch (ClassNotFoundException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			}
		}
	}
	private void KpairGen() {
		KeyPairGenerator aliceKpairGen;
		try {
			aliceKpairGen = KeyPairGenerator.getInstance("DH");
			aliceKpairGen.initialize(512);
			KeyPair aliceKpair = aliceKpairGen.generateKeyPair();
			JFileChooser chooser = new JFileChooser();
			chooser.setCurrentDirectory(new File("."));
			chooser.setDialogTitle("SaveAliceKeyPair");
			int i = chooser.showSaveDialog(this);
			if (i == JFileChooser.APPROVE_OPTION) {
				ObjectOutputStream oos;
				try {
					oos = new ObjectOutputStream(
							new FileOutputStream(chooser.getSelectedFile()));
					oos.writeObject(aliceKpair);
					oos.flush();
					oos.close();
				} catch (FileNotFoundException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				} catch (IOException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				}
				
			}
			PublicKey alicePubKeyEnc = aliceKpair.getPublic();
			chooser.setDialogTitle("SaveAlicePublicKey");
			i = chooser.showSaveDialog(this);
			if (i == JFileChooser.APPROVE_OPTION) {
				ObjectOutputStream oos;
				try {
					oos = new ObjectOutputStream(
							new FileOutputStream(chooser.getSelectedFile()));
					oos.writeObject(alicePubKeyEnc);
					oos.flush();
					oos.close();
				} catch (FileNotFoundException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				} catch (IOException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				}
				
			}
		} catch (NoSuchAlgorithmException e) {
			JOptionPane.showMessageDialog(this, e.getMessage());
		}
		
	}
	
}
class DH_Bob extends JPanel implements ActionListener{
	JTextArea myInfoArea = new JTextArea();
	JButton openPKey=new JButton("OpenPKey");//open alice's public key
	JButton KpairGen=new JButton("BobKpairGen");//從alice發送來的公鑰中讀出DH密鑰對的初始參數生成Bob的DH密鑰對并保存自己的公鑰。
	JButton DesKeyGen=new JButton("DesKeyGen");//Alice的公鑰生成本地的DES密鑰
	PublicKey alicePKey=null;
	KeyPair bobKpair=null;
	DH_Bob(){
		this.setLayout(new BorderLayout());
		JPanel buttons=new JPanel();
		buttons.add(openPKey);
		buttons.add(KpairGen);
		buttons.add(DesKeyGen);
		this.add(new JScrollPane(myInfoArea),BorderLayout.CENTER);
		this.add(buttons,BorderLayout.SOUTH);
		openPKey.addActionListener(this);
		KpairGen.addActionListener(this);
		DesKeyGen.addActionListener(this);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		String command = e.getActionCommand();
		if (command.equals("OpenPKey")) {
			myInfoArea.setText("第二步:Bob讀出alice發送來的公鑰\n"+
			"下一步:Bob從alice發送來的公鑰中讀出DH密鑰對的初始參數生成Bob的DH密鑰對");
			openKey();
		} else if (command.equals("BobKpairGen")) {
			myInfoArea.setText("第三步:Bob從alice發送來的公鑰中讀出DH密鑰對的初始參數生成Bob的DH密鑰對并保存自己的public key\n"+
			"下一步:Bob根據Alice的公鑰生成本地的DES密鑰");
			bobKpairGen();
		} else if (command.equals("DesKeyGen")) {
			myInfoArea.setText("第四步:Bob根據Alice的公鑰生成本地的DES密鑰\n"+
			"下一步:Alice根據bob的公鑰生成本地的DES密鑰");
			desKeyGen();
		} 
	}

	private void desKeyGen() {
		KeyAgreement bobKeyAgree;
		try {
			bobKeyAgree = KeyAgreement.getInstance("DH");
			bobKeyAgree.init(bobKpair.getPrivate());
			bobKeyAgree.doPhase(alicePKey, true);
			SecretKey bobDesKey = bobKeyAgree.generateSecret("DES"); 
			myInfoArea.append("bobDesKey: "+Arrays.toString(bobDesKey.getEncoded()));
			JFileChooser chooser = new JFileChooser();
			chooser.setCurrentDirectory(new File("."));
			chooser.setDialogTitle("save bob DesKey");
			int i = chooser.showSaveDialog(this);
			if (i == JFileChooser.APPROVE_OPTION) {
				ObjectOutputStream oos;
				try {
					oos = new ObjectOutputStream(
							new FileOutputStream(chooser.getSelectedFile()));
					oos.writeObject(bobDesKey);
					oos.flush();
					oos.close();
				} catch (FileNotFoundException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				} catch (IOException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				}
				
			}
		} catch (NoSuchAlgorithmException e) {
			JOptionPane.showMessageDialog(this, e.getMessage());
		} catch (InvalidKeyException e) {
			JOptionPane.showMessageDialog(this, e.getMessage());
		}
		
	}

	private void bobKpairGen() {
		DHParameterSpec dhParamSpec = ((DHPublicKey)alicePKey).getParams();
		KeyPairGenerator bobKpairGen;
		try {
			bobKpairGen = KeyPairGenerator.getInstance("DH");
			bobKpairGen.initialize(dhParamSpec);
			bobKpair = bobKpairGen.generateKeyPair();
			PublicKey bobPKey=bobKpair.getPublic();
			JFileChooser chooser = new JFileChooser();
			chooser.setCurrentDirectory(new File("."));
			chooser.setDialogTitle("Save Bob Public Key");
			int i = chooser.showSaveDialog(this);
			if (i == JFileChooser.APPROVE_OPTION) {
				ObjectOutputStream oos;
				try {
					oos = new ObjectOutputStream(
							new FileOutputStream(chooser.getSelectedFile()));
					oos.writeObject(bobPKey);
					oos.flush();
					oos.close();
				} catch (FileNotFoundException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				} catch (IOException e) {
					JOptionPane.showMessageDialog(this, e.getMessage());
				}
				
			}
		} catch (NoSuchAlgorithmException e) {
			JOptionPane.showMessageDialog(this, e.getMessage());
		} catch (InvalidAlgorithmParameterException e) {
			JOptionPane.showMessageDialog(this, e.getMessage());
		}
		
	}

	private void openKey() {
		JFileChooser chooser = new JFileChooser();
		chooser.setCurrentDirectory(new File("."));
		chooser.setDialogTitle("open alice public key");
		int i = chooser.showOpenDialog(this);
		if (i == JFileChooser.APPROVE_OPTION) {
			File file = chooser.getSelectedFile();
			try {
				ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
				alicePKey=(PublicKey)ois.readObject();
				ois.close();
			} catch (FileNotFoundException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			} catch (IOException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			} catch (ClassNotFoundException e) {
				JOptionPane.showMessageDialog(this, e.getMessage());
			}
		}
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av一二三不卡影片| 91麻豆精品国产| 日韩亚洲欧美在线观看| 亚洲欧洲成人自拍| 精品一区二区日韩| 欧美在线免费观看亚洲| 亚洲国产岛国毛片在线| 成人福利在线看| 欧美一区二区三区不卡| 亚洲色图丝袜美腿| 国产在线不卡一区| 欧美一区二区国产| 日韩中文字幕av电影| 日本高清成人免费播放| 国产精品国产自产拍高清av| 国产一区二区导航在线播放| 欧美一区二区三区白人| 日本中文字幕一区二区视频 | 久久国产精品露脸对白| 欧美日韩亚洲高清一区二区| 亚洲人精品午夜| 99久精品国产| 国产精品网站在线| 丁香亚洲综合激情啪啪综合| 国产午夜精品久久久久久免费视| 久久99精品久久久久久国产越南| 日韩免费看网站| 另类中文字幕网| 日韩女优av电影| 国产在线视频精品一区| 精品国内片67194| 国产精品自拍一区| 日本一区二区三区国色天香| 粉嫩aⅴ一区二区三区四区五区| 久久精品视频一区二区| 国产成人精品一区二区三区网站观看| 亚洲精品一区二区三区福利| 国产高清亚洲一区| 中文字幕av不卡| 一本一本大道香蕉久在线精品| 亚洲黄网站在线观看| 欧美日韩一区视频| 麻豆成人91精品二区三区| 日韩精品一区二区三区视频 | 一区二区在线观看免费 | 伊人婷婷欧美激情| 日本伦理一区二区| 免费亚洲电影在线| 久久先锋影音av| 不卡的电影网站| 亚洲综合图片区| 欧美一区二区三区四区五区| 精品无人区卡一卡二卡三乱码免费卡 | 精品少妇一区二区三区免费观看| 精品一区二区在线视频| 亚洲国产高清在线观看视频| 色综合久久久久| 久久国产精品免费| 中文字幕视频一区| 777精品伊人久久久久大香线蕉| 久久国产精品色婷婷| 成人欧美一区二区三区黑人麻豆| 欧美日韩激情一区| 国产老肥熟一区二区三区| 国产精品久久久久久久久晋中| 91麻豆视频网站| 狠狠色狠狠色合久久伊人| 综合电影一区二区三区 | 最新中文字幕一区二区三区| 欧美日韩中字一区| 成人免费视频一区| 日韩影院精彩在线| **欧美大码日韩| 久久人人97超碰com| 色婷婷久久久综合中文字幕| 精品一区二区三区免费视频| 夜夜嗨av一区二区三区| 精品欧美久久久| 久久久精品免费网站| 在线观看欧美日本| 成人一区二区三区视频| 青青草一区二区三区| 伊人色综合久久天天| 中文字幕高清不卡| 日韩美一区二区三区| 欧美午夜免费电影| 成人91在线观看| 国产精品456露脸| 日韩—二三区免费观看av| 日韩毛片一二三区| 国产日韩欧美精品电影三级在线| 欧美日韩在线精品一区二区三区激情| 成年人国产精品| 国产成人午夜视频| 国产精品亚洲成人| 久久爱另类一区二区小说| 五月婷婷综合网| 亚洲成国产人片在线观看| 综合精品久久久| 综合分类小说区另类春色亚洲小说欧美| 26uuu国产电影一区二区| 欧美一级淫片007| 欧美美女黄视频| 欧美影院一区二区| 在线观看成人小视频| 99re视频这里只有精品| 成人精品视频网站| 国产高清不卡一区| 岛国av在线一区| 不卡欧美aaaaa| 97成人超碰视| 91福利资源站| 欧美丝袜丝交足nylons| 欧美视频完全免费看| 99国产精品99久久久久久| 91久久线看在观草草青青| 亚洲乱码国产乱码精品精小说| 丝袜脚交一区二区| 亚洲综合色区另类av| 亚洲欧美日韩在线播放| 亚洲人精品午夜| 亚洲一卡二卡三卡四卡| 国产日韩高清在线| 麻豆高清免费国产一区| 亚洲精品一区二区精华| 国产精品99久久久久久久vr | 99久久精品国产导航| 国产·精品毛片| 91免费国产在线观看| 欧美三级在线播放| 在线成人午夜影院| 精品欧美一区二区在线观看| 国产欧美精品区一区二区三区 | 久久国产欧美日韩精品| 国产一区二区三区精品欧美日韩一区二区三区| 国内精品自线一区二区三区视频| 国产高清在线观看免费不卡| 91麻豆免费视频| 欧美美女直播网站| 久久久久国产免费免费| 亚洲视频在线一区观看| 婷婷综合另类小说色区| 韩国精品一区二区| 91丨国产丨九色丨pron| 5566中文字幕一区二区电影| 久久婷婷色综合| 亚洲综合网站在线观看| 久久国产精品第一页| 色综合久久天天综合网| 日韩亚洲欧美高清| 中文字幕一区二区三区不卡| 婷婷久久综合九色国产成人| 床上的激情91.| 欧美一区二区视频网站| 国产精品二区一区二区aⅴ污介绍| 亚洲综合在线电影| 国产一区二区三区不卡在线观看| 一本到三区不卡视频| 久久久久久久综合色一本| 一区二区三区中文字幕电影 | 欧美日韩一区不卡| 国产日本欧洲亚洲| 日韩经典中文字幕一区| a美女胸又www黄视频久久| 日韩欧美aaaaaa| 亚洲一区二区三区中文字幕| 国产一区二区三区日韩| 91麻豆精品国产91久久久资源速度 | 成人精品小蝌蚪| 欧美成人福利视频| 亚洲成人高清在线| 99re这里都是精品| 国产免费成人在线视频| 91美女在线视频| 国产调教视频一区| 免费成人小视频| 欧美嫩在线观看| 亚洲高清免费在线| 91免费版在线| 成人欧美一区二区三区1314| 国产福利一区二区三区视频 | 国产真实乱偷精品视频免| 欧美日本一区二区三区| 亚洲一区二区成人在线观看| 成人精品一区二区三区中文字幕| 久久久久久久久蜜桃| 国内久久婷婷综合| 精品国产sm最大网站免费看| 看电视剧不卡顿的网站| 3d成人h动漫网站入口| 亚洲午夜精品网| 欧美性受xxxx黑人xyx性爽| 亚洲另类色综合网站| 色婷婷综合久色| 亚洲免费在线观看视频| 99久久精品免费精品国产| 成人欧美一区二区三区白人| 97久久超碰国产精品| 亚洲男人的天堂在线aⅴ视频| 91视频观看免费|