Saya ingin menambahkan user ke tabel user, apakah ada cara untuk mengenkrispi passwrod user di MySQL?
Sudah coba baca-baca di internet banyak yang menyarankan pakai fungsi bawaan MySQL ENCRYPT()
dan PASSWORD()
, apakah ini cara yang umum dipakai atau ada cara lain?
Ini tabel saya:
mysql> explain user;
+----------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-----------------+------+-----+---------+----------------+
| id | bigint unsigned | NO | PRI | NULL | auto_increment |
| email | varchar(255) | NO | UNI | NULL | |
| password | varchar(255) | NO | | NULL | |
+----------+-----------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
Enkripsi (encrypt) bisa di dekripsi (decrypt), hash tidak bisa di unhash (dekripsi) sehingga lebih aman. Aplikasi diluar sana biasanya menggunakan hashing untuk melindungi password bukan enkripsi. Selain itu proses hasing dilakukan di level aplikasi, bukan di query SQL.
Enkripsi adalah proses mengacak teks biasa menjadi teks sandi yang tidak dapat dibaca, yang dapat didekripsi dengan kunci tertentu, sedangkan hashing mengubah teks biasa menjadi kode unik, yang tidak dapat dikembalikan ke bentuk yang dapat dibaca.
Untuk hasing password, Di PHP bisa menggunakan fungsi password_hash()
, di Node.js bisa menggunakan librari bcrypt, di bahasa lain biasanya sudah ada library atau fungsi bawaan.
Lebih baik gunakan hasing dan lakukan di level aplikasi. Hindari menggunakan fungsi hasing/enskripsi yang disediakan MySQL.
Kamu tau jawabannya?
Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!