Belajar Java - Pengenalan AES (Advanced Encryption Standard) dan Implementasinya dalam Java - Java Community

Belajar Java - Pengenalan AES (Advanced Encryption Standard) dan Implementasinya dalam Java

AES (Advanced Encryption Standard) adalah sebuah algoritma kriptografi yang digunakan untuk melakukan enkripsi dan dekripsi data. Algoritma ini telah diadopsi secara luas dan digunakan dalam berbagai aplikasi keamanan, termasuk pengamanan data pada jaringan komputer, komunikasi online, dan penyimpanan data yang sensitif.

Belajar Java - Pengenalan AES (Advanced Encryption Standard) dan Implementasinya dalam Java

Pengertian AES

AES adalah sebuah algoritma blok cipher simetris yang menggunakan ukuran blok tetap sebesar 128 bit dan kunci dengan panjang 128, 192, atau 256 bit. Algoritma ini bekerja pada blok-blok data dengan mengganti setiap blok dengan blok yang dihasilkan dari operasi enkripsi atau dekripsi.

Proses Enkripsi dan Dekripsi AES

Proses enkripsi dan dekripsi AES terdiri dari beberapa langkah utama:

  1. Inisialisasi Key
  2. Key enkripsi atau dekripsi AES harus disiapkan terlebih dahulu. Key ini memiliki panjang 128, 192, atau 256 bit tergantung pada kebutuhan keamanan.

  3. SubBytes
  4. Setiap byte pada blok data diubah menggunakan tabel substitusi yang telah ditentukan.

  5. ShiftRows
  6. Byte-byte dalam setiap baris blok data digeser ke kiri secara siklik.

  7. MixColumns
  8. Kolom-kolom pada blok data diubah menggunakan operasi matematika khusus.

  9. AddRoundKey
  10. Blok data di-XOR dengan kunci putaran yang sesuai.

Proses di atas diulangi sejumlah putaran tergantung pada panjang kunci yang digunakan. Setiap putaran melibatkan penggunaan kunci putaran yang berbeda.

Contoh Penggunaan AES

Contoh
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public class AESEncryptionUtil {
    private static final String AES_ALGORITHM = "AES";
    private static final String ENCRYPTION_KEY = "mySecretKey123456";

    public static String encrypt(String data) throws Exception {
        SecretKeySpec keySpec = new SecretKeySpec(ENCRYPTION_KEY.getBytes(), AES_ALGORITHM);
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.ENCRYPT_MODE, keySpec);
        byte[] encryptedBytes = cipher.doFinal(data.getBytes());
        return Base64.getUrlEncoder().encodeToString(encryptedBytes);
    }

    public static String decrypt(String encryptedData) throws Exception {
        SecretKeySpec keySpec = new SecretKeySpec(ENCRYPTION_KEY.getBytes(), AES_ALGORITHM);
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.DECRYPT_MODE, keySpec);
        byte[] decryptedBytes = cipher.doFinal(Base64.getUrlDecoder().decode(encryptedData));
        return new String(decryptedBytes);
    }
}

Pada contoh di atas, saya menggunakan AES dengan panjang kunci 128 bit. Key yang digunakan adalah mySecretKey123456. Dalam contoh ini, metode encrypt digunakan untuk melakukan enkripsi data, sedangkan metode decrypt digunakan untuk melakukan dekripsi data. Data yang dienkripsi akan dikodekan dalam bentuk Base64 untuk kemudahan transportasi dan penyimpanan.

AppMain
public class AppMain {
    public static void main(String[] args) {
        try {
            String data = "Community Java";
            String encryptedData = AESEncryptionUtil.encrypt(originalData);
            String decryptedData = AESEncryptionUtil.decrypt(encryptedData);

            System.out.println("Data : " + data);
            System.out.println("Data Yang Sudah Di Encrypt : " + encryptedData);
            System.out.println("Data Yang Sudah Di Decrypt : " + decryptedData);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Dalam contoh ini, kita mengenkripsi teks "Community Java" dan kemudian mendekripsinya kembali. Hasil enkripsi dan dekripsi akan ditampilkan di output.

Sekian penjelasan tentang AES dan contoh penggunaannya dalam pemrograman java. AES merupakan salah satu algoritma kriptografi yang kuat dan banyak digunakan dalam keamanan data. Dengan pemahaman yang baik tentang AES, kalian dapat mengamankan data sensitif dengan lebih efektif.

Subscribe to receive free email updates:

0 Response to "Belajar Java - Pengenalan AES (Advanced Encryption Standard) dan Implementasinya dalam Java"

Posting Komentar