📄 myjframe.java
字号:
package javaappssa;import java.util.Random;public class MyJFrame extends javax.swing.JFrame { /** Creates new form MyJFrame */ public MyJFrame() { initComponents(); } // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); jTextAreaNormal = new javax.swing.JTextArea(); jButton_cripteaza = new javax.swing.JButton(); jBDecript = new javax.swing.JButton(); jScrollPane2 = new javax.swing.JScrollPane(); jTextAreaCriptat = new javax.swing.JTextArea(); statusLabel = new javax.swing.JLabel(); jBCezarEnc = new javax.swing.JButton(); jBCezarDecode = new javax.swing.JButton(); jTextField_CheieCezar = new javax.swing.JTextField(); LabelCheie = new javax.swing.JLabel(); jBCifruVigenere = new javax.swing.JButton(); jBDecodeVigenere = new javax.swing.JButton(); LabelCheieVigenere = new javax.swing.JLabel(); jTextFieldVigenereKeys = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("SSA - Cryptography"); jLabel1.setText("Text Normal"); jLabel2.setText("Text Criptat"); jTextAreaNormal.setColumns(20); jTextAreaNormal.setLineWrap(true); jTextAreaNormal.setRows(5); jScrollPane1.setViewportView(jTextAreaNormal); jButton_cripteaza.setText("Encode"); jButton_cripteaza.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton_cripteazaActionPerformed(evt); } }); jBDecript.setText("Decode"); jBDecript.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBDecriptActionPerformed(evt); } }); jTextAreaCriptat.setColumns(20); jTextAreaCriptat.setLineWrap(true); jTextAreaCriptat.setRows(5); jScrollPane2.setViewportView(jTextAreaCriptat); statusLabel.setText("Status"); jBCezarEnc.setText("Cezar Encode"); jBCezarEnc.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBCezarEncActionPerformed(evt); } }); jBCezarDecode.setText("Cezar Decode"); jBCezarDecode.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBCezarDecodeActionPerformed(evt); } }); jTextField_CheieCezar.setText("0"); jTextField_CheieCezar.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jTextField_CheieCezarKeyReleased(evt); } }); LabelCheie.setText("Cezar's Key"); jBCifruVigenere.setText("Vigenere Encode"); jBCifruVigenere.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBCifruVigenereActionPerformed(evt); } }); jBDecodeVigenere.setText("Vigenere Decode"); jBDecodeVigenere.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBDecodeVigenereActionPerformed(evt); } }); LabelCheieVigenere.setText("Vigenere's Keys"); jTextFieldVigenereKeys.setText("vector"); jTextFieldVigenereKeys.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jTextFieldVigenereKeysKeyReleased(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addGap(70, 70, 70) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 202, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(170, 170, 170) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(LabelCheieVigenere) .addComponent(LabelCheie)) .addGap(52, 52, 52) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextFieldVigenereKeys, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField_CheieCezar, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(jBCifruVigenere) .addComponent(jButton_cripteaza) .addComponent(jBCezarEnc)) .addGap(98, 98, 98) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jBCezarDecode) .addComponent(jBDecodeVigenere) .addComponent(jLabel2) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 201, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jBDecript)) .addGap(72, 72, 72)) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(276, 276, 276) .addComponent(statusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 181, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(360, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jButton_cripteaza) .addGap(23, 23, 23) .addComponent(statusLabel) .addGap(48, 48, 48) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jBCezarEnc) .addComponent(jBCezarDecode) .addComponent(LabelCheie) .addComponent(jTextField_CheieCezar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 90, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jBCifruVigenere) .addComponent(LabelCheieVigenere) .addComponent(jTextFieldVigenereKeys, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jBDecript) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 198, Short.MAX_VALUE) .addComponent(jBDecodeVigenere))) .addContainerGap()) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton_cripteazaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_cripteazaActionPerformed // TODO add your handling code here: statusLabel.setText("Encripting..."); Text2Encode = jTextAreaNormal.getText(); System.out.println("\n Text normal: \n"+Text2Encode); Text2Decode = criptare_text(Text2Encode); jTextAreaCriptat.setText(Text2Decode); }//GEN-LAST:event_jButton_cripteazaActionPerformed private void jBDecriptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBDecriptActionPerformed // TODO add your handling code here: statusLabel.setText("Decripting..."); Text2Decode = jTextAreaCriptat.getText(); System.out.println("\n Text criptat: \n"+Text2Decode); Text2Encode = decriptare_text(Text2Decode); jTextAreaNormal.setText(Text2Encode);}//GEN-LAST:event_jBDecriptActionPerformedprivate void jBCezarEncActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBCezarEncActionPerformed // TODO add your handling code here: statusLabel.setText("Cezar Mode Encripting..."); Text2Encode = jTextAreaNormal.getText(); System.out.println("\n Text normal (pentru Cezar Mode): \n"+Text2Encode); Text2Decode = caesar_criptare_text(Text2Encode); jTextAreaCriptat.setText(Text2Decode); }//GEN-LAST:event_jBCezarEncActionPerformedprivate void jBCezarDecodeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBCezarDecodeActionPerformed// TODO add your handling code here: statusLabel.setText("Cezar Mode Decripting..."); Text2Decode = jTextAreaCriptat.getText(); System.out.println("\n Text criptat (Cezar Mode): \n"+Text2Decode); Text2Encode = caesar_decriptare_text(Text2Decode); jTextAreaNormal.setText(Text2Encode); }//GEN-LAST:event_jBCezarDecodeActionPerformedprivate void jTextField_CheieCezarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextField_CheieCezarKeyReleased// TODO add your handling code here: this.cheie_cezar = Integer.parseInt(jTextField_CheieCezar.getText());}//GEN-LAST:event_jTextField_CheieCezarKeyReleasedprivate void jBCifruVigenereActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBCifruVigenereActionPerformed// TODO add your handling code here: statusLabel.setText("Vigenere Mode Encripting..."); Text2Encode = jTextAreaNormal.getText(); System.out.println("\n Text normal (pentru Vigenere Mode): \n"+Text2Encode); Text2Decode = vigenere_criptare_text(Text2Encode); jTextAreaCriptat.setText(Text2Decode); }//GEN-LAST:event_jBCifruVigenereActionPerformedprivate void jBDecodeVigenereActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBDecodeVigenereActionPerformed// TODO add your handling code here: statusLabel.setText("Vigenere Mode Decripting..."); Text2Decode = jTextAreaCriptat.getText(); System.out.println("\n Text criptat (Vigenere Mode): \n"+Text2Decode); Text2Encode = vigenere_decriptare_text(Text2Decode); jTextAreaNormal.setText(Text2Encode); }//GEN-LAST:event_jBDecodeVigenereActionPerformedprivate void jTextFieldVigenereKeysKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextFieldVigenereKeysKeyReleased// TODO add your handling code here: cheie_vigenere = jTextFieldVigenereKeys.getText();}//GEN-LAST:event_jTextFieldVigenereKeysKeyReleased private int inv_multipl(int a,int b){ // u*a + v*b = cmmdc(a,b) = g // if cmmdc(a,b) =1 then ua = 1 mod b ; => u = a mod b; v = b mod a; int g=0,s1,s2,u1,u2,v1,v2,q,r,t,u,v; s1=a; s2=b; u1=1; u2=0; v1=0; v2=1; while (s2 !=0 ) { q = s1 / s2; r = s1 - q*s2; s1 = s2; s2 = r; t = u2; u2 = u1-q*u2; u1 = t; t = v2; v2 = v1-q*v2; v1 = t; } g = s1; u = u1; v = v1; return u; // u = a mod b; } private String criptare_text(String inputText){ int lungimeInput; int t = 10; int i=0, j=0, k=0, oaia_neagra=0; int codulLuiS = 12; int conflict=-1; int randomNumber; Random generator = new Random(); permutareASCII = new int[t]; int valASCII[] = new int[t]; int caturi[] = new int[t]; int resturi[] = new int[t]; int randomIndex[] = new int[t] ; String result_cripted_text; lungimeInput = inputText.length(); // System.out.println(" init sir permutare: "); for (i=0;i<t;i++){ permutareASCII[i]=-1; valASCII[i]=32; caturi[i]=0; resturi[i]=0; //System.out.print(" "+permutare[i]); } // generare index random for (i=0;i<t; i++) { randomNumber = generator.nextInt(t); randomIndex[i] = randomNumber; conflict = 0 ; for (j=0;j<i; j++) { if (randomIndex[j] == randomNumber) { conflict = 1; } else { conflict = 0; } if (conflict == 1) { randomNumber = generator.nextInt(t); j=0; } else randomIndex[i] = randomNumber; } //System.out.println(i + " / " + randomIndex[i]); } // corectare randIndex permutare (genereaza o singura dublura) for (j=0;j<t; j++) { for (k=j+1; k<t; k++) { if (randomIndex[j]==randomIndex[k]) { randomIndex[j]=-20; oaia_neagra = j; } } } for (i=0;i<t;i++){ conflict=0; for (k=0; k<t; k++) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -