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

📄 rsa.java

📁 用java写的RSA加密解密程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

		}
		return jButton;
	}

	
	private JButton getJButton3() {
		if (jButton3 == null) {
			jButton3 = new JButton();
			jButton3.setBounds(new Rectangle(540, 38, 81, 22));
			jButton3.setText("读取密文");
			jButton3.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					loadFile(1);
					
				}
			});
		}
		return jButton3;
	}

	
	private JButton getJButton11() {
		if (jButton11 == null) {
			jButton11 = new JButton();
			jButton11.setBounds(new Rectangle(643, 38, 81, 22));
			jButton11.setEnabled(false);
			jButton11.setText("保存文本");
			jButton11.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					saveFile(1);
				}
			});
		}
		return jButton11;
	}

	
	private JButton getJButton21() {
		if (jButton21 == null) {
			jButton21 = new JButton();
			jButton21.setBounds(new Rectangle(225, 388, 70, 16));
			jButton21.setEnabled(false);
			jButton21.setText("保存");
			jButton21.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					saveFile(2);
				}
			});
		}
		return jButton21;
	}

	private JButton getJButton22() {
		if (jButton22 == null) {
			jButton22 = new JButton();
			jButton22.setBounds(new Rectangle(139, 388, 70, 16));
			jButton22.setText("读取");
			jButton22.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					loadFile(2);
					
				}
			});
		}
		return jButton22;
	}

	
	private JButton getJButton12() {
		if (jButton12 == null) {
			jButton12 = new JButton();
			jButton12.setBounds(new Rectangle(198, 13, 81, 22));
			jButton12.setEnabled(false);
			jButton12.setText("加密");
			jButton12.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					
						try {
							Cipher c1 = Cipher.getInstance("RSA");
							c1.init(Cipher.ENCRYPT_MODE,pubkey);
							byte [] data=jTextArea.getText().getBytes();
							int blockSize =Integer.parseInt(jTextField.getText())/8;
							int num=data.length%blockSize==0?data.length/blockSize-1:data.length/blockSize;
							byte [] newdata=new byte[blockSize];
							byte[] cipherByte=new byte[c1.getOutputSize(blockSize)];
							
							String cipherstring="";
							for(int i=0;i<num;i++){
								for(int j=0;j<blockSize;j++){
									
									newdata[j]=data[j+i*blockSize];
								}
								cipherByte=c1.doFinal(newdata);
								cipherstring+=(new BASE64Encoder()).encode(cipherByte);
							}
							
							cipherstring+=(new BASE64Encoder()).encode(c1.doFinal(data,blockSize*num,data.length-blockSize*num));
							jTextArea1.setText(cipherstring);
						} catch (Exception e1) {
							// TODO 自动生成 catch 块
							e1.printStackTrace();
						
						}
						if (jButton212.isEnabled()){
							jButton121.setEnabled(true);
						}
						jButton11.setEnabled(true);
						jButton31.setEnabled(true);
						    		

				}
			});
		}
		return jButton12;
	}

	
	private JButton getJButton31() {
		if (jButton31 == null) {
			jButton31 = new JButton();
			jButton31.setBounds(new Rectangle(643, 13, 81, 22));
			jButton31.setEnabled(false);
			jButton31.setText("解密");
			jButton31.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					byte[] data;
					try {
						Cipher c1 = Cipher.getInstance(Algorithm);
						c1.init(Cipher.DECRYPT_MODE, prikey);
						int blockSize =c1.getOutputSize(Integer.parseInt(jTextField.getText())/8);
						byte [] newdata=new byte[blockSize];
						data=new BASE64Decoder().decodeBuffer(jTextArea1.getText());
						int num=data.length%blockSize==0?data.length/blockSize-1:data.length/blockSize;
						String cipherstring="";
						for(int i=0;i<num;i++){
							for(int j=0;j<blockSize;j++){
								
								newdata[j]=data[j+i*blockSize];
							}
							
							cipherstring+=(new String(c1.doFinal(newdata)));
						}
						cipherstring+=(new String(c1.doFinal(data,blockSize*num,data.length-blockSize*num)));
						
						jTextArea.setText(new String(cipherstring));
					}  catch (java.security.NoSuchAlgorithmException e1) {e1.printStackTrace();}
					   catch (javax.crypto.NoSuchPaddingException e2) {e2.printStackTrace();}
					   catch (java.lang.Exception e3) {e3.printStackTrace();jTextArea.setText("解密失败");}
					   				
					   
					  
				}
			});
		}
		return jButton31;
	}

	private JTextArea getJTextArea2() {
		if (jTextArea2 == null) {
			jTextArea2 = new JTextArea();
			jTextArea2.setEditable(false);
			jTextArea2.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.PLAIN, 13));
			}
		return jTextArea2;
	}

	
	private JTextArea getJTextArea3() {
		if (jTextArea3 == null) {
			jTextArea3 = new JTextArea();
			jTextArea3.setEditable(false);
			jTextArea3.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.PLAIN, 13));
		}
		return jTextArea3;
	}
	
	private JTextArea getJTextArea5() {
		if (jTextArea5 == null) {
			jTextArea5 = new JTextArea();
			jTextArea5.setEditable(false);
			jTextArea5.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.PLAIN, 13));
		}
		return jTextArea5;
	}
	
	private JTextArea getJTextArea6() {
		if (jTextArea6 == null) {
			jTextArea6 = new JTextArea();
			jTextArea6.setEditable(false);
			jTextArea6.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.PLAIN, 13));
		}
		return jTextArea6;
	}

	
	
	/**
	 * This method initializes jButton121	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton121() {
		if (jButton121 == null) {
			jButton121 = new JButton();
			jButton121.setBounds(new Rectangle(32, 13, 112, 22));
			jButton121.setText("生成数字签名");
			jButton121.setEnabled(false);
			jButton121.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					try {
						Signature signet = java.security.Signature
								.getInstance("MD5withRSA");
						signet.initSign(signprikey);
						signet.update(jTextArea1.getText().getBytes());
						jTextArea4.setText((new BASE64Encoder()).encode(signet.sign()));
						               
						
					} catch (Exception e1) {
						jTextArea4.setText("生成数字签名失败") ;
					}
					jButton214.setEnabled(true);
					jButton311.setEnabled(true);
				}
			});
		}
		return jButton121;
	}


	/**
	 * This method initializes jButton311	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton311() {
		if (jButton311 == null) {
			jButton311 = new JButton();
			jButton311.setBounds(new Rectangle(473, 12, 117, 22));
			jButton311.setText("验证数字签名");
			jButton311.setEnabled(false);
			jButton311.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					try {
						java.security.Signature signetcheck = java.security.Signature
								.getInstance("MD5withRSA");
						signetcheck.initVerify(signpubkey);
						signetcheck
								.update(jTextArea1.getText().getBytes());
						if (signetcheck.verify(new BASE64Decoder().decodeBuffer(jTextArea4.getText()))) {
							jLabel4.setText("成功");
						}
						else jLabel4.setText("失败");
					} catch (Exception e2) {
						jLabel4.setText("验证失败");
					}					

				}
			});
		}
		return jButton311;
	}


	/**
	 * This method initializes jButton24	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton24() {
		if (jButton24 == null) {
			jButton24 = new JButton();
			jButton24.setBounds(new Rectangle(534, 345, 105, 23));
			jButton24.setText("生成加密密钥");
			jButton24.setEnabled(false);
			jButton24.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					try {
						KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
					     KeyPair keys=keygen.generateKeyPair(); // 生成密钥组
					     pubkey=keys.getPublic();
						 prikey=keys.getPrivate();
					     jTextArea5.setText(pubkey.toString());
					     jTextArea6.setText(prikey.toString());
					     
						
					} catch (Exception e1) {
						
					}	
					if (jTextArea.getText()!=""){
						jButton12.setEnabled(true);
					}
					jButton211.setEnabled(true);
					jButton213.setEnabled(true);
				}
			});
		}
		return jButton24;
	}


	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setBounds(new Rectangle(119, 344, 137, 20));
			jTextField.setText("512");
		}
		return jTextField;
	}


	/**
	 * This method initializes jButton221	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton221() {
		if (jButton221 == null) {
			jButton221 = new JButton();
			jButton221.setBounds(new Rectangle(139, 474, 70,16));
			jButton221.setText("读取");
			jButton221.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					loadFile(5);
					
				}
			});
		}
		return jButton221;
	}


	/**
	 * This method initializes jButton211	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton211() {
		if (jButton211 == null) {
			jButton211 = new JButton();
			jButton211.setBounds(new Rectangle(225, 474, 70, 16));
			jButton211.setText("保存");
			jButton211.setEnabled(false);
			jButton211.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					saveFile(5);
				}
			});
		}
		return jButton211;
	}


	/**
	 * This method initializes jButton212	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton212() {
		if (jButton212 == null) {
			jButton212 = new JButton();
			jButton212.setBounds(new Rectangle(632, 388, 70, 16));
			jButton212.setText("保存");
			jButton212.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					saveFile(3);
				}
			});
			jButton212.setEnabled(false);
		}
		return jButton212;
	}


	/**
	 * This method initializes jButton213	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton213() {
		if (jButton213 == null) {
			jButton213 = new JButton();
			jButton213.setBounds(new Rectangle(632, 474, 70, 16));
			jButton213.setText("保存");

⌨️ 快捷键说明

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