Skip to content Show
Dalam DBMS, hashing adalah teknik untuk secara langsung mencari lokasi data yang diinginkan pada disk tanpa menggunakan struktur indeks. Metode hashing digunakan untuk mengindeks dan mengambil item dalam database karena lebih cepat untuk mencari item tertentu menggunakan kunci hash yang lebih pendek alih-alih menggunakan nilai aslinya. Data disimpan dalam bentuk blok data yang alamatnya dihasilkan dengan menerapkan fungsi hash di lokasi memori di mana catatan ini disimpan sebagai a blok data atau bucket data Dalam tutorial DBMS ini, Anda akan belajar, Di sini, adalah situasi di DBMS di mana Anda perlu menerapkan metode hashing: Di sini, adalah terminologi penting yang digunakan dalam hashing: Ada terutama dua jenis metode / teknik Hashing SQL: Dalam hashing statis, alamat bucket data yang dihasilkan akan selalu tetap sama. Karena itu, jika Anda menghasilkan alamat untuk dikatakan Student_ID = 10. Menggunakan fungsi hashing. mod (3) , alamat bucket yang dihasilkan akan selalu . Jadi, Anda tidak akan melihat perubahan alamat ember. Oleh karena itu, dalam metode hashing statis ini, jumlah bucket data dalam memori selalu tetap konstan. Fungsi hash statis
Hashing statis selanjutnya dibagi menjadi
Buka hashing.Dalam metode hashing terbuka, alih-alih menimpa yang lebih tua satu blok data berikutnya yang tersedia digunakan untuk memasukkan catatan baru, metode ini juga dikenal sebagai pencar linear. Misalnya, A2 adalah rekor baru yang ingin Anda masukkan. Fungsi hash menghasilkan alamat sebagai 222. Tetapi sudah ditempati oleh beberapa nilai lain. Itu sebabnya sistem mencari ember data berikutnya 501 dan menugaskan A2 untuk itu. BAGAIMANA BUKA HASH BEKERJATutup hashing.Dalam metode hashing tutup, ketika ember penuh, bucket baru dialokasikan untuk hash yang sama dan hasilnya ditautkan setelah yang sebelumnya. Hash dinamis.Hashing dinamis menawarkan mekanisme di mana bucket data ditambahkan dan dihilangkan secara dinamis dan sesuai permintaan. Dalam hashing ini, fungsi hash membantu Anda membuat sejumlah besar nilai. Perbedaan antara indeks dan hashing yang dipesanDi bawah ini adalah perbedaan utama antara pengindeksan dan hashing
Apa itu tabrakan?Tabrakan hash adalah keadaan ketika hash yang dihasilkan dari dua atau lebih data dalam kumpulan data, salah memetakan tempat yang sama di Tabel Hash. Bagaimana cara menangani tabrakan hashing?Ada dua teknik yang dapat Anda gunakan untuk menghindari tabrakan hash:
Ringkasan:
Artikel ini berasal dari website Guru99, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini
Dalam tutorial tentang user MySQL sebelumnya, saya selalu menambahkan password dalam membuat user baru agar lebih aman, namun bagaimana sebenarnya MySQL menyimpan password tersebut? dalam tutorial kali ini saya akan membahas tentang fungsi hashing dan kaitannya dengan cara kerja sistem password MySQL dalam mengelola password user. Mengenal Sistem Enkripsi HashingDalam mengelola user, MySQL menyimpan password di dalam tabel user yang berada di dalam database mysql. Sampai pada tutorial ini, tentunya kita telah membuat beberapa user yang harusnya terdapat di dalam tabel ini, saya akan mencoba melihat password tiap-tiap user yang terdaftar dengan melihatnya dari tabel user ini. Berikut query yang diperlukan untuk melihat password seluruh user dalam MySQL (masuklah sebagai root): D:\MySQL\bin>mysql -uroot -pqwerty Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mahasiswa | | mysql | | performance_schema | | test | | universitas | +--------------------+ 6 rows in set (0.54 sec) mysql> USE mysql; Database changed mysql> SELECT user,password,host FROM user; +------------------+-------------------------------------------+-------------+ | user | password | host | +------------------+-------------------------------------------+-------------+ | root | *AA1420F182E88B9E5F874F6FBE7459291E8F4601 | localhost | | ilkom_admin | *7438236BE048F242AA18D2EE074296F078CD701A | localhost | | mahasiswa | *7438236BE048F242AA18D2EE074296F078CD701A | localhost | | ekonomi_admin | *7438236BE048F242AA18D2EE074296F078CD701A | localhost | | tamu | | localhost | | dosen_ilkom | *7438236BE048F242AA18D2EE074296F078CD701A | localhost | | sensus_mahasiswa | *7438236BE048F242AA18D2EE074296F078CD701A | 192.168.0.4 | | admin_kampus | *7438236BE048F242AA18D2EE074296F078CD701A | % | | ilkom_admin1 | *7438236BE048F242AA18D2EE074296F078CD701A | localhost | +------------------+-------------------------------------------+-------------+ 13 rows in set (0.16 sec)Dari query diatas, kita dapat melihat seluruh user, password, dan lokasi dari user yang terdaftar dalam MySQL. Namun seperti yang terlihat, isian dari password disimpan dalam angka yang acak. Ini adalah hasil fungsi hashing yang digunakan MySQL untuk menangani password. Pengertian Fungsi Hashing MySQLDalam ilmu komputer, fungsi hashing biasanya dipelajari bersama-sama dengan kriptografi, yaitu ilmu tentang pembuatan pesan rahasia dan cara memecahkannya. Secara sederhana, fungsi hashing adalah sebuah fungsi yang digunakan untuk mengacak sebuah kata menjadi kata lain yang tidak bermakna dan sedapat mungkin kata hasil hashing tidak bisa ditebak dari kata apa kata tersebut berasal. Seluruh password user yang disimpan MySQL, terlebih dahulu diproses melalui fungsi hashing ini. Tujuannya, agar user yang tidak berhak, tidak dapat melihat password user lainnya. Sepanjang tutorial MySQL dalam duniailkom ini, saya menggunakan password qwerty untuk user root. Tetapi seperti yang terlihat dari hasil diatas, MySQL bukan menyimpan kata qwerty, tetapi menyimpannya menjadi : “AA1420F182E88B9E5F874F6FBE7459291E8F4601”. Ini adalah hasil fungsi hashing dari kata qwerty yang disimpan sebagai password MySQL. Mengenal Fungsi PASSWORD()Untuk mendapatkan hasil hashing untuk password MySQL, kita bisa menggunakan fungsi PASSWORD yang disediakan MySQL. Berikut contoh query untuk penggunaan fungsi PASSWORD: mysql> SELECT PASSWORD('qwerty'); +-------------------------------------------+ | PASSWORD('qwerty') | +-------------------------------------------+ | *AA1420F182E88B9E5F874F6FBE7459291E8F4601 | +-------------------------------------------+ 1 row in set (0.16 sec)Seperti yang terlihat, MySQL meng-hashing kata qwerty menjadi karakter-karakter acak sepanjang 41 karakter. Hasil hashing inilah yang disimpan dalam tabel user diatas. Lalu bagaimana cara MySQL membandingkan password saat user masuk ke sistem? MySQL cukup membandingkan isian password yang diinput penguna, memasukkannya ke dalam fungsi PASSWORD, dan membandingkan hasilnya dengan yang terdapat di tabel user. Jika hasil hashing nya bernilai sama, maka password tersebut benar dan pengguna berhak masuk ke dalam sistem. Anda bisa mencoba kata-kata lainnya ke dalam fungsi PASSWORD ini, misalnya untuk user ilkom_admin, saya menggunakan password ‘r4hasia’. mysql> SELECT PASSWORD('r4hasia'); +-------------------------------------------+ | PASSWORD('r4hasia') | +-------------------------------------------+ | *7438236BE048F242AA18D2EE074296F078CD701A | +-------------------------------------------+ 1 row in set (0.00 sec)Fungsi hashing ini dirancang untuk tidak bisa ditebak dari apa kata password ‘yang asli’ berasal. Namun bagaimana jika terdapat user yang lupa passwordnya sendiri? Caranya adalah dengan membuat password baru untuk user tersebut, atau menghapus password tersebut. Langkah-langkah untuk merubah dan menghapus password user MySQL akan kita bahas pada tutorial selanjutnya. |