Cara Mengenkripsi Password di Mysql Supaya Lebih Aman

Suci Wulandari

โ€ข

12 June 2023

โ€ข

3802

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!




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!

front-end-web-development

Share

Author Image

Suci Wulandari

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

Artikel Terkait

Contoh Use Case Diagram Berikut Ini Mudah Dipelajari dan Dipahami, Lho!

Web Development

Contoh Use Case Diagram Berikut Ini Mudah Dipelajari dan Di...

Berbagai contoh use case diagram berikut ini akan membantu pemahaman Sobat MinDi. Penerapan use cas...

Image Author

Suci Wulandari

โ€ข

29 May 2023

10 Jenis Tipe Data Pemrograman Paling Populer 2024

Web Development

10 Jenis Tipe Data Pemrograman Paling Populer 2024

Di artikel ini, MinDi akan membahas tentang 10 jenis tipe data pemrograman yang paling sering digun...

Image Author

Suci Wulandari

โ€ข

01 August 2023

10 Cara Membuat Biodata di HTML

Web Development

10 Cara Membuat Biodata di HTML

Membuat biodata yang menarik dan informatif di HTML dapat membantu meningkatkan kesan profesional, ...

Image Author

Suci Wulandari

โ€ข

21 September 2023

Cara Membuat Form Input PHP: Panduan Lengkap

Web Development

Cara Membuat Form Input PHP: Panduan Lengkap

Form input adalah cara utama untuk berinteraksi dengan pengguna di situs web. Artikel ini akan memb...

Image Author

Suci Wulandari

โ€ข

25 September 2023

Virtual Machine (VM):  Definisi, Fungsi, Jenis, & Cara Kerja

Web Development

Virtual Machine (VM): Definisi, Fungsi, Jenis, & Cara Kerja

Virtual machine atau VM artinya adalah emulasi hardware komputer yang berkaitan dengan pelaksanaan ...

Image Author

Siti Khadijah Azzukhruf Firdausi

โ€ข

02 February 2024

5 Contoh Gerbang Logika dalam Aplikasi Nyata, Yuk Lihat

Web Development

5 Contoh Gerbang Logika dalam Aplikasi Nyata, Yuk Lihat

Aplikasi gerbang logika bisa ditemukan di berbagai aspek dari elektronik digital hingga sistem komp...

Image Author

Siti Khadijah Azzukhruf Firdausi

โ€ข

08 February 2024