dibimbing.id - Cara Mengenkripsi Password di Mysql Supaya Lebih Aman

Cara Mengenkripsi Password di Mysql Supaya Lebih Aman

Suci Wulandari

โ€ข

12 June 2023

โ€ข

7262

Image Banner

Password yang terenkripsi bisa menjadi salah satu upaya meningkatkan keamanan pada proses autentifikasi pada database. Enkripsi adalah proses pengaburan data awal menjadi bentuk lain yang sulit ditebak. Meski begitu, data yang telah terenkripsi tersebut bisa dikembalikan ke bentuk awalnya jika diperlukan. 


Dengan enkripsi, data user beserta passwordnya tidak akan bisa dibaca orang lain termasuk oleh administrator. Pada database MySQL, terdapat dua fungsi untuk mengenkripsi data yang umumnya dipakai yaitu password ( ) dan encrypt ( ). Di artikel ini akan dijelaskan cara mengenkripsi password di MySQL menggunakan keduanya. Simak sampai selesai, ya!


Kelebihan MySQL


Cara Mengenkripsi Password di Mysql

Dibimbing.id - Kelebihan MySQL


Dari segi keamanan, MySQL tentu tidak perlu diragukan lagi. Untuk membagikan aksesnya saja perlu melewati beberapa tahap bertingkat. Selain keamanannya, MySQL juga memiliki beberapa kelebihan lain sehingga menjadi salah satu DBMS unggulan. Apa saja kelebihannya MySQL tersebut? 

  • Banyak tipe data yang dapat digunakan seperti integer, float, double, date, timestamp, varchar, dan lain-lain. 

  • Performa baik dan cepat. 

  • Tidak memakan banyak kapasitas RAM.

  • Bisa dipakai secara bersamaan (multi user).

  • Bisa diolah pada berbagai platform seperti di Windows, Linux, maupun Mac OS. 

  • Tetap bisa digunakan pada hardware dengan spesifikasi rendah. 


Mengenkripsi Password MySQL dengan perintah password ( )

Seperti yang sudah dijelaskan sebelumnya, enkripsi password di MySQL dapat menggunakan perintah password ( ). Cara ini tergolong mudah dan cepat untuk dilakukan. Hanya saja, hasil enkripsinya akan sama. MinDi akan berikan contoh mengenkripsi dua password sekaligus. Password pertama adalah makan1, sementara yang kedua adalah makan2.

  1. Pertama, masukkan perintah password ( ) seperti di bawah ini.


mysql> INSERT INTO user values(โ€˜makan1โ€™, password(โ€˜makananโ€™));

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO user values(โ€˜makanโ€™, password(โ€˜makananโ€™));

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM user;

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| name | password |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| makan1 | 05bf00c242eaee8e |

| makan2 | 05bf00c242eaee8e |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

2 rows in set (0.00 sec)


  1. Tuliskan perintah tersebut dengan kata yang akan dienkripsi, contohnya (โ€˜makananโ€™). 

  2. Hasilnya enkripsinya yaitu 05bf00c242eaee8e untuk kedua password tersebut.


Mengenkripsi Password MySQL dengan perintah encrypt ( )

Cara lain untuk melakukan enkripsi password yaitu dengan perintah encrypt ( ). Dengan cara ini, enkripsi yang didapat pada masing-masing password bisa berbeda sehingga tingkat keamanan lebih tinggi. Password yang digunakan sebagai contoh ada dua yaitu pertama adalah makan3, sementara yang kedua adalah makan4.

Berikut caranya!


  • Tuliskan perintah encrypt ( ) seperti di bawah ini



mysql> INSERT INTO user values(โ€˜makan3โ€™, encrypt(โ€˜makananโ€™));

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO user values(โ€˜makan4โ€™, encrypt(โ€˜makananโ€™));

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM user;

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| name | password |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| makan3 | 28RKg.Y01Y9RE |

| makan4 | B8INV5toweKv2 |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

4 rows in set (0.00 sec)

  • Hasilnya adalah 28RKg.Y01Y9RE untuk makan3, dan B8INV5toweKv2 untuk makan4. Keduanya mendapatkan enkripsi yang berbeda. 
  • Dari situ diketahui bahwa fungsi encrypt ( ) memakai cara pemanggilan fungsi standar UNIX untuk enkripsi yaitu crypt( ). Artinya, cara tersebut memakai kata yang terdiri dari dua karakter acak sebagai password penenkripsinya. Jika kamu tidak mendefinisikan nilai hasil kembaliannya akan berbeda meski kata yang dienkripsi sama persis. Coba lanjutkan dengan perintah seperti berikut.

mysql> INSERT INTO user values(โ€˜makan5โ€™, encrypt(โ€˜makananโ€™, โ€˜a1โ€™));

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO user values(โ€˜makan6โ€™, encrypt(โ€˜makanan, โ€˜a1โ€™));

Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM user;

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| name | password |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| makan3 | 28RKg.Y01Y9RE |

| makan4 | B8INV5toweKv2 |

| makan5 | a1UOXpafoUJX2 |

| makan6 | a1UOXpafoUJX2 |

| makan2 | 05bf00c242eaee8e |

| makan1 | 05bf00c242eaee8e |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

6 rows in set (0.00 sec)


Password makan3 dan makan 4 adalah hasil proses enskripsi pertama yang belum menggunakan password penenkripsi. Sementara password pada makan5 dan makan6 adalah hasil proses enkripsi kedua yang telah menggunakan password penenkripsi yang adalah a1. Hasilnya tetap sama untuk sebuah kata yang dienkripsi. Hasil enkripsinya berawalan dua karakter dari password pengenkripsinya. 


  • Selanjutnya, MinDi akan mencoba melakukan enkripsi pada data makanan dengan jumlah karakter penenkripsiannya lebih dari dua karakter. Masukkan perintah seperti di bawah ini.



mysql> INSERT INTO user values(โ€˜makan7โ€™, encrypt(โ€˜makanan, โ€˜makaโ€™));

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO user values(โ€˜makan8โ€™, encrypt(โ€˜makananโ€™, โ€˜makaโ€™));

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM user;

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| name | password |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

| makan3 | 28RKg.Y01Y9RE |

| makan4 | B8INV5toweKv2 |

| makan5 | a1UOXpafoUJX2 |

| makan6 | a1UOXpafoUJX2 |

| makan2 | 05bf00c242eaee8e |

| makan1 | 05bf00c242eaee8e |

| makan7 | ad2GgJP5tJDoU |

| makan8 | ad2GgJP5tJDoU |

+โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”โ€”+

8 rows in set (0.01 sec)


Hasilnya ternyata tetap hanya dua karakter pertamanya saja yang dipakai sebagai password penenkripsi. 



Semoga artikel di atas bisa membantu, ya! Ingin tahu lebih banyak seputar dunia pemrograman? Yuk, belajar bersama dengan mengikuti Bootcamp Web Development by dibimbing.id. Dijamin seru, materinya lengkap, dan dibimbing oleh mentor berpengalaman. Kamu akan belajar berbagai hal terkait dengan web development secara intensif selama 4,5 bulan. Agar tidak kehabisan kuota, pastikan untuk segera mendaftarkan diri di sini, ya!

Share

Author Image

Suci Wulandari

Kolektor kartu pos, mantan pustakawan, dan penulis yang bisa menulis apa saja kecuali skenario kehidupannya sendiri.

Hi!๐Ÿ‘‹

Kalau kamu butuh bantuan,

hubungi kami via WhatsApp ya!