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

📄 myjframe.java

📁 Java Application for testing Encryption/Decryption of several algorithms: Ceaar, Vigenere, a custom
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -