Skip to content Skip to sidebar Skip to footer

Cara Enkripsi Password Dengan PHP - Salah Satunya Dengan Secret Key

Cara Enkripsi Password Dengan PHP - Salah Satunya Dengan Secret Key

openssl_encrypt di PHP

Keamanan dalam sebuah sistem, sekarang amat dibutuhkan. Dengan berkembang pesatnya teknologi informasi membuat kita harus selalu beradaptasi dengan keadaan, termasuk sistem. Didalam sistem dibutuhkan keamanan agar tidak bisa di retas para hacker. Salah satunya dengan mengenkripsi sebuah password pada sistem.

 

Apa Itu Enkripsi

Enkripsi adalah sebuah cara mengacak atau menyembunyikan nilai asli dengan karakter lain, atau kata lain proses mengubah teks yang jelas menjadi tersandi yang sering disebut Enkripsi. Sedangkan proses mengubah teks tersandi atau terenkripsi menjadi teks jelas disebut dengan Dekripsi.

 

Mengapa Butuh Enkripsi Password?

Sebelum melanjutkan, mengapa kita harus mengenkripsi password?. Contohnya, jika di sebuah sistem pastinya kita akan melakukan pengecekan password terlebih dulu sebelum masuk kedalam sistem. Yang apabila sistem password tidak menggunakan enkripsi, maka akan memudahkan orang mengetahui password untuk mengakses sistem kita. Jika kita menggunakan enkripsi, maka akan menyulitkan orang mengetahui password sistem. Berikut contoh password yang dienkripsi dan tidak:

Username

Password Tanpa Enkripsi

Admin

Admin

 

Username

Password Dengan Enkripsi MD5

Admin

21232f297a57a5a743894a0e4a801fc3.

 

Jika kita lihat tabel diatas, kita mengetahui bahwa yang tanpa enkripsi akan mudah diketahui orang berbeda dengan yang dienkripsi. Terus bagaimana cara kita mengenkripsi password sistem kita.

 

Enkripsi Dengan MD5

Enkripsi dengan MD5 merupakan cara enkripsi yang sering digunakan para programmer pemula, karna mudah menggunakan enkripsi MD5 tanpa perlu coding yang banyak. Tetapi banyak kekurangan dari enkripsi dengan MD5, karna enkripsi ini sudah lama digunakan maka untuk cara meretasnya juga banyak dan selanjutnya Enkripsi MD5 tidak bisa di Dekrip atau ditampilkan passwrod aslinya karna tidak ada fungsi tersebut.

<?php

$password=md5(‘admin’); // contoh password

echo $password; //nilai outputnya adalah 21232f297a57a5a743894a0e4a801fc3.

?>


Enkripsi Dengan Password_hash

Password_hash adalah salah satu fungsi yang terdapat pada PHP versi 5.5 keatas, untuk melakukan sebuah hashing menggunakan algoritma satu arah atau one way hashing. Sedangkan Hash merupakan sebuah mekanisme untuk memetakan sebuah data yang diinputkan berupa teks asli (plain text) menjadi output berupa checksum atau fingerpint (kode acak yang memiliki panjang karakter yang tetap). Karan algoritma menggunakan konsep satu arah maka sebuah data atau teks tidak akan bisa dikembalikan ke aslinya atau di dekrip.

<?php

$options = [

                ‘cost’ =10,

];

$password = password_hash(‘admin’, PASSWORD_DEFAULT,  $options);

echo $password;//hasil outputnya $2y$10$AcnRXWegq9PhoUkC6Wf2xOg/WeyF.ybdm29RHUdvqKkDt0XAudQm2

?>

 

Penjelasan

  • password_hash merupakan fungsi untuk melakukan hashing.

  • admin merupakan data atau teks password yang ingin kita hashing

  • PASSWORD_DEFAULT merupakan algoritma bawaan untuk memproses hash yaitu menggunakan BCRYPT dan akan menghasilkan output karakter sepanjang 60 karakter.

  • $options hanya sebuah nama variable array untuk manampung nilai cost. Nama variabel ini bisa kalian ganti sesuka kalian.

  • cost merupakan parameter yang digunakan untuke menentukan seberapa banyak hash diproses. Untuk BCRYPT, apabila nilai 10 maka dilakukan hashing  sebanyak 2^10 atau 1024 kali.

 

Enkripsi Dengan openssl_encrypt()

Enkripsi dengan fungsi ini merupakan enkripsi two-way-hashing atau dua arah, dimana data tersebut yang telah dienkripsi bisa dikembalikan ke bentuk awal. Open ssl adalah jenis enkrpsi dua arah atau two-way-hashing yang paling aman digunakan karna ketika untuk mengembalikan data kebentuk awal, harus mengetahui key dari enkripsi yang digunakan.

Berikut adalah cara mengenkripsi data dengan fungsi ini

<?php

$data='admin';

$method="AES-128-CTR"; 

$key ="Sipinter123@#@";

$option=0; 

 //asal saja hehehe 

//namun pajangnya sesuiai method cipher 

//cek dengan openssl_cipher_iv_length($method); 

$iv="1251632135716362";

$dataenkripsi=openssl_encrypt($data, $method, $key, $option, $iv); 

echo "$dataenkripsi";

//hasil outputnya Ck8gNF0=

?>


Untuk mendecrip atau mengembalikan data ke awal

<?php

$data='Ck8gNF0=';
$method="AES-128-CTR";

$key ="Sipinter123@#@";

$option=0;

 //asal saja hehehe

//namun pajangnya sesuiai method cipher

//cek dengan openssl_cipher_iv_length($method);

$iv="1251632135716362";
$datadekripi=openssl_decrypt($data, $method, $key, $option, $iv);

echo "$datadekripi";

//hasil outputnya admin

?>
 

Penjelasan

  • $data = data atau string yang akan dienkripsi.
  • $method = Chipper method, untuk mengetahui fungsi chiper method apa saja yang tersedia, gunakan fungsi openssl_get_chipher_method()
  • $key = kata kunci yang digunakan untuk menghash data
  • $option = fungsi dari flag OPENSSL_RAW_DATA dan OPENSSL_ZERO_PADDING.
  • $iv = berisi vektor inisialisasi yang tidak null atau kosong.


Sekian postingan saya kali ini. Untuk selanjutnya insyallah akan membuat tutorial implementasi salah satu fungsi diatas untuk sistem login. Semoga artikel ini bermanfaat dan jika ada pertanyaan kalian bisa tulis dikolom komentar.

 

Jangan lupa share Artikel ini ke teman-teman kalian...

 

Post a Comment for "Cara Enkripsi Password Dengan PHP - Salah Satunya Dengan Secret Key"