Aplikasi Kriptografi Hill Cipher Menggunakan Java GUI Netbeans
Aplikasi Kriptografi Hill Cipher Menggunakan Java GUI Netbeans
Disusun oleh:
NAMA
NIM
: ABDURRAHMAN A. BULUATIE
: 122052006
package Tugas;
public final class HillChipper extends javax.swing.JFrame {
private static final int m = 26;
private final int[][] M = new int[2][2];
private final int[][] N = new int[2][2];
private final int p[] = new int[100];
private final int c[] = new int[100];
char[] f = new char[100];
public HillChipper() {
initComponents();
kontrolTbl();
}
private static int tambah(int a, int b) {
return (a + b) % m;
}
private static int kali(int a, int b) {
return (a * b) % m;
}
private static int inversTambah(int a) {
return (m - a);
}
private static int inversKali(int a) {
int hasil = -1;
for (int i = 1; i < m; i++) {
if (((a * i) % m) == 1) {
hasil = i;
}
}
return hasil;
}
private static boolean adaInvers(int a) {
boolean hasil = false;
for (int i = 1; i < m; i++) {
if (((a * i) % m) == 1) {
hasil = true;
}
}
return hasil;
}
public void GetM() {
M[0][0] = Integer.parseInt(tf1.getText());
M[0][1] = Integer.parseInt(tf2.getText());
M[1][0] = Integer.parseInt(tf3.getText());
M[1][1] = Integer.parseInt(tf4.getText());
}
}
return c;
}
@SuppressWarnings("unchecked")
private void
jButton1ActionPerformed(java.awt.event.ActionEvent
evt) {
GetM();
if (CekDeterminan(M)) {
labelcek.setText("Matrix memiliki invers");
} else {
labelcek.setText("Matrix tidak memiliki invers");
}
if (CekDeterminan(M)) {
enablebtn();
} else {
kontrolTbl();
}
}
private void
jButton2ActionPerformed(java.awt.event.ActionEvent
evt) {
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("");
}
private void
enkripTBlActionPerformed(java.awt.event.ActionEvent
evt) {
setP();
String str;
str = plainteks.getText();
enkrip(M, p);
for (int z = 0; z < str.length(); z++) {
f[z] = (char) ((c[z] % 26) + 65); // untuk huruf kecil
menggunakn angka 97
}
String s = new String(f).trim();
System.out.println("Hasil Enkripsi menjadi string =
" + s);
chiperl.setText(s);
}
private void
dekripTblActionPerformed(java.awt.event.ActionEvent
evt) {
setC();
String Btr;
Btr = plainteks.getText();
enkrip(N, c);
for (int z = 0; z < Btr.length(); z++) {
f[z] = (char) ((p[z] % 26) + 65); // untuk huruf kecil
menggunakn angka 97
}
String s = new String(f).trim();
System.out.println("Hasil Dekrip menjadi string = "
+ s);
tx2.setText(s);
chiperl.setText("");
}
private void
jButton3ActionPerformed(java.awt.event.ActionEvent
evt) {
chiperl.setText("");
plainteks.setText("");
tx2.setText("");
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HillChipper().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel chiperl;
private javax.swing.JButton dekripTbl;
private javax.swing.JButton enkripTBl;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JLabel label;
private javax.swing.JLabel labelcek;