📄 rsa.java
字号:
}
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 + -