Bab 4
Hasil Penelitian Dan Pembahasan
4.1 Implementasi Sistem
Aplikasi dikembangkan dengan menggunakan software Android Studio. Target sistem operasi yang dipilih adalah perangkat mobile dengan sistem operasi Android 4.x.
Gambar 4.1 Halaman Login
Gambar 4.2 Tampilan Chat List
Daftar chat ditampilkan pada Gambar 4.2. Pada halaman ini, user dapat melihat riwayat chatting sebelumnya. Ketika salah satu list dipilih, maka akan ditampilkan halaman chatting seperti ditunjukkan pada Gambar 4.3.
User mengirimkan pesan dengan menggunakan halaman chatting seperti ditunjukkan pada Gambar 4.3. Pesan yang dikirimkan oleh user, secara otomatis akan dienkripsi, kemudian disimpan di server. Ketika proses menerima pesan, data dari server ditarik dalam bentuk pesan terenkripsi, kemudian didekripsi di aplikasi Android, dan ditampilkan dalam bentuk plaintext.
4.2 Pengujian Sistem
Pengujian aplikasi ditekankan pada pengujian keamanan. Proses enkripsi terjadi pada dua titik, yaitu ketika pesan dikirim dari aplikasi Android ke server, dan dari server ke aplikasi Android.
Gambar 4.4 Hasil Capture Wireshark dari Aplikasi Android ke Server
Gambar 4.5 Hasil Capture Wireshark dari Server ke Aplikasi Android
Gambar 4.5 merupakan hasil pengujian dengan aplikasi WireShark untuk packet yang merupakan balasan dari server menuju aplikasi Android. Pesan chatting yang berada dalam packet TCP, berada dalam bentuk ciphertext.
Kode Program 1 Enkripsi Dekripsi PHP
1. <?php
2. function encrypt($plaintext, $key) { 3. $plaintext = pkcs5_pad($plaintext, 16);
4. return bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, 5. hextobin($key), $plaintext, MCRYPT_MODE_ECB)); 6. }
7. function decrypt($encrypted, $key) {
8. $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, 9. hextobin($key), hextobin($encrypted), MCRYPT_MODE_ECB); 10.$padSize = ord(substr($decrypted, -1));
11.return substr($decrypted, 0, $padSize*-1); 12.}
13.?>
ditunjukkan dengan kata kunci MCRYPT_RIJNDAEL_128. Angka 128 menunjukkan panjang kunci yang digunakan, yaitu 128 bit.
Kode Program 2 Enkripsi Dekripsi Android
1. public static String encrypt(final String plaintext, final String KEY) 2. throws GeneralSecurityException {
3. SecretKeySpec sks = new
4. SecretKeySpec(hexStringToByteArray(KEY), "AES"); 5. Cipher cipher = Cipher.getInstance("AES");
6. cipher.init(Cipher.ENCRYPT_MODE, sks,
cipher.getParameters());
7. byte[] encrypted = cipher.doFinal(plaintext.getBytes()); 8. return byteArrayToHexString(encrypted);
9. } 10.
11.public static String decrypt(final String ciphertext, final String KEY) 12.throws GeneralSecurityException {
13. SecretKeySpec sks = new
14. SecretKeySpec(hexStringToByteArray(KEY), "AES"); 15. Cipher cipher = Cipher.getInstance("AES");
16. cipher.init(Cipher.DECRYPT_MODE, sks,
cipher.getParameters());
17. byte[] decrypted = cipher.doFinal(ciphertext.getBytes()); 18. return byteArrayToHexString(decrypted);
19.}