Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Membuat Aplikasi Enkripsi Vigenere Berbasis Java


Beberapa waktu yang lalu, saya mendapatkan tugas dari kuliah Keamanan Jaringan. Yah, bisa dibilang kalau mata kuliah ini adalah mata kuliah wajib. Jadi, mau nggak mau harus diambil. Dalam mata kuliah ini dijelaskan bahwa setiap data yang lalu lalang di dalam jaringan tidak selalu aman. Oleh karena itu, dibutuhkan tindakkan pengamanan. Langkah pengamanan ini meliputi pengunaan ptotokol jaringan aman atau pengenkripsian data.


Apa itu enkripsi?
Ada banyak sekali algoritma pengenkripsian data. Namun, secara garis besar dapat digolongkan menjadi 2 bagian, yaitu enkripsi simetris dan asimetris. Letak perbedaan dari keduannya adalah pada kuncinya (key).


Pada enkripsi simetris, kunci yang digunakan untuk mendekrip sama dengan kunci untuk mengenkrip. Sehingga, apabila pihak luar mengetahui algoritma sekaligus kuncinya maka pesan dapat diketahui. Enkripsi ini sering disebut enkripsi klasik. Berbeda pada enkripsi asimetris. Enkripsi asimetris melibatkan dua kunci untuk saling mengenkripsi dan mendekripsi. Kunci yang pertama digunakan untuk mengenkripsi, disebut public key. Public key ini akan digunakan oleh pengirim pesan untuk mengenkripsi pesan. Walaupun orang lain mendapatkan public key ini, orang tersebut tidak bisa menerjemahkan chippertext-nya. Dipihak penerima, terdapat sebuah kunci yang disebut private key. Private key ini berfungsi untuk mendekrip pesan yang dikirimkan oleh pihak lainnya. Private key ini bersifat rentan, sehingga pihak penerima tidak boleh membiarkan pihak lain mengetahuinya.


Terdapat banyak algoritma dari enkripsi simetris. Salah satunya adalah algoritma Vigenere. Algoritma ini merupakan algoritma yang telah lama dipakai. Vigenere ditemukan oleh Giovan Battista Bellaso pada abad 19.


Vigenere Chiper
Itu tadi adalah sepintas mengenai enkripsi dan Vigenere Chiper. Selanjutnya adalah paparan mengenai bagaimana cara membuat enkripsi dan dekripsi Vigenere Chiper menggunakan bahasa pemrograman Java.


Berikut langkah-langkah yang harus dikerjakan:
1. Menentukan jenis karakter (Apakah ASCII ataukah beberapa karakter yang telah ditentukan)
2. Mernentukkan jumlah dari karakter total
3. Menuliskan daftar fungsi-fungsi yang kemungkinan dipergunakan.
4. Menuliskan Kode pokok
5. Menuliskan Kode tambahan (Interface dan I/O)


Pembahasan
Langkah 1 (Membuat Class Vigenere)
Jika menggunakan karakter yang terbatas, karakter tersebut harus didefinisikan dahulu dalam sebuah kamus yang berbentuk String. Selanjutnya, dapat di loop sepanjang length. Pembatasan karakter ini, akan mengakibatkan kegagalan dekripsi jika user memasukkan karakter tidak ada dalam kamus. Walaupun begitu, tidak ada salahnya jika jenis Vigenere ini dibuat.


Langkah 2 (Menentukan Jumlah Karakter)
Untuk aplikasi yang menggunakan kamus, dapat digunakan sytax length dalam menentukkan jumlah huruf. Sedangkan untuk ASCII, jumlah karakter total adalah 256.


Langkah 3 (Menuliskan Daftar Fungsi)
Fungsi-fungsi yang kemungkinan digunakan adalah:
1. Looping untuk mengulang huruf dalam kalimat yang akan dienkripsi (looping kalimat)
2. Fungsi untuk mengecek karakter spasi didalam looping
3. Looping untuk mengulang kunci yang ada didalam looping kalimat
4. Fungsi untuk mengkonversi dari alfabet menjadi integer agar dapat dihitung
5. Fungsi menghitung
6. Fungsi untuk mengkonversi dari integer menjadi alfabet
7. Fungsi main


Langkah 4 (Menuliskan Kode)
Nah, berdasarkan daftar fungsi diatas kita bisa maka sytax dari kode diatas adalah sebagai berikut:


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pengamanajaringan;


/**
*
* @author blackhiden.blogspot.com
*/

public class Vigenere {
  private String Input; //Input teks
  private String Output; //Output teks
  private String Key; //Key dari enkripsi Vigenere
  private final int PanjangKamus = 51; //jumlah dari kamus
  //kamus yang dipergunakan A-Za-z
  private final String Kamus = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
     
  public Vigenere(){
  }

   public String getInput() {
       return Input;
   }

   public String getOutput() {
       return Output;
   }

   public String getKey() {
       return Key;
   }

   public void setInput(String Input) {
       this.Input = Input;
   }

   public void setOutput(String Output) {
       this.Output = Output;
   }

   public void setKey(String Key) {
       this.Key = Key;
   }
   
   
  
  
  
  //merubah char
  private int chartoInt(char inKey){
      int k = 0;
      for (int i = 0; i < Kamus.length(); i++) {
          if (inKey == Kamus.charAt(i)) {
              k = i;
              break;
          }
      }
      return k;
  }
  //Enkripsi
  public String VigenereEn(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') { //cek spasi agar struktur huruf tidak berubah
              Output += " ";  
          } else {
              if (k < Key.length()) {
              h = hitungVi(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungVi(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  public String VigenereDe(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') {
              Output += " ";
          } else {
              if (k < Key.length()) {
              h = hitungViDe(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungViDe(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  private int hitungVi(int p, int k){
      int o = (p + k) ;
      if (o > PanjangKamus) {
         o %= PanjangKamus;
          System.out.println(o);
      }
      return o;
  }
  
  private int hitungViDe(int p, int k){
      int o = (p - k);
      if (o < 0) {
          o += PanjangKamus;
      }
      return o;
  }
  
   
}


Langkah 5 (Tampilan dan I/O)
Untuk terakhir, anda bisa membuat interface untuk I/.O.


Semoga anda paham dan mengerti.

Selamat ber-coding ria.

Menginstal Java Development Kit (JDK) .tar.gz pada Linux Debian

Menginstal Java Development Kit (JDK) .tar.gz pada Linux Debian


Java Development Kit (JDK) merupakan sekumpulan aplikasi yang digunakan dalam pembuatan aplikasi berbasis Java. Pada dasarnya instalasi JDK pada Linux Debian (Kali Linux 1.1.0 Moto) sangat mudah, karena instalasinya dapat dilakukan dengan paket dari debian. Namun untuk JDK saat ini (versi 1.8_6x) hanya dapat dilakukan instalasi secara binari.

Paket binari yang disediakan oleh oracle berbentuk archive dengan format .tar.gz. Oleh karena itu, ada cara khusus dalam melakukan instalasi JDK pada Linux.

Langkah 1
Download dahulu paket binarinya pada website resminya. Untuk mengetahui paket terbaru JDK, silahkan kunjungi link DISINI (Jangan lupa Accept License Agreement)



Langkah 2
Buat direktori pada /opt/jdk
mkdir /opt/jdk 
Direktori ini nantinya akan digunakan untuk menyimpan file-file binari JDK


Langkah 3
Ekstrak file .tar.gz nya pada direktori /opt/jdk 
tar -zxf -C /opt/jdk
Pastikan tidak terjadi error (ditandai dengan standard output error pada shell) saat ekstraksi. Lihat hasilnya dengan:
ls /opt/jdk



Langkah 4
Install Java pada update-alternatives agar compiler dan intepreter mengarah pada folder yang tepat. Masukkan perintah:
update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_65/bin/java 100
update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_65/bin/javac 100
Langkah 5
Aktifkan Java yang baru saja diinstall dengan perintah
update-alternatives --config java
update-alternatives --config javac
Pada masing-masing perintah di atas, anda akan disuruh untuk memasukkan nomor. Masukkan saja nomor yang merujuk pada JDK yang baru aja baru saja anda install.


Setelah tahap ini, anda sudah bisa menggunakan Java dengan versi yang baru saja anda install. Untuk memasitkan versinya, masukkan saja perintah:
java -version
javac -version
Itu saja yang bisa saya sampaikan, semoga bermanfaat.








Mengatasi Error Kesalahan Versi pada Java



Seringkali ketika anda mengerjakan sebuah proyek Java dari komputer lain, kemudian memindahkannya ke komputer pribadi, proyek anda mengalami eror seperti:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Encryption/x : Unsupported major.minor version 51.0

Lihatlah Bagaimana Jika Pemrograman Java Difilmkan


Lihatlah Bagaimana Jika Pemrograman Java Difilmkan

Java merupakan bahasa pemrograman yang mengijinkan anda untuk membangun aplikasi yang dapat dijalankan pada bermacam-macam sistem operasi. Perilisian resmi Java yaitu 23 Januari 1996, sehingga umur Java saat ini mencapai 19 tahun.

Karena bersifat open source, banyak sekali developer yang beranjak menggunakan Java untuk membangun aplikasi-aplikasi berbasis desktop, mobile dan web. Android yang saat ini populer juga menggunakan bahasa pemrograman berbasis Java.

Download Tutorial Pemrograman Java



Content:

Materi 1 Pencabangan.mp4
Materi 2 Perulangan.mp4
Materi 3 [Switch Case].mp4
Materi 4 [BufferedReader & Try Catch].mp4
Materi 6 [Array 2 Dimensi].mp4
Materi 8 [Polimorphism] OOP.mp4
Materi 9 [Override Method].mp4
Materi 10 [Overloading Method].mp4
Materi 11 [Super Key].mp4
Materi 12 [Static Key].mp4
Materi 14 [Konstruktor].mp4
Materi 15 [Overloading Konstruktor].mp4
Materi 16 [POJO].mp4




(Size: 310.6 MB)

Mencari Selisih Jumlah Hari Antara Dua Tanggal pada Bash Scripting

Beberapa waktu lalu lagi bikin projek yang melibatkan protokol HTTPS. Seperti yang kita tahu bahwa HTTPS merupakan protokol yang melindungi ...