Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Fungsi Hashing dalam PHP

Fungsi Hashing dalam PHP

PHPz
PHPzasal
2024-08-29 12:47:031161semak imbas

Fungsi pencincangan dalam PHP ialah kaedah khas yang dipratakrifkan dan digunakan untuk menunjukkan rentetan dalam bentuk nilai pasti yang diukur daripada aksara rentetan. Ia popular untuk aplikasinya sebagai algoritma penyulitan dan sebagai perwakilan nilai indeks untuk item dalam pangkalan data. Jenis algoritma pencincangan yang paling biasa digunakan dalam proses penyulitan data ialah SHA1() dan MD5(). Dalam PHP, fungsi pencincangan terdiri daripada empat jenis yang berbeza, seperti Hash_equals, Hash_final, Hash_init dan Hash_copy.

IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Bagaimanakah Fungsi Hashing berfungsi?

PHP ialah bahasa pengaturcaraan sebelah pelayan dan peranan utamanya ialah ia perlu memproses kefungsian bahagian belakang yang diperlukan untuk aplikasi tertentu. Dalam proses ini, pengesahan memainkan peranan penting kerana kelemahan boleh mengeksploitasi data dengan mudah. Salah satu cara untuk melindungi data adalah dengan menyimpannya dalam pangkalan data dalam bentuk asalnya tetapi ini boleh membawa kepada situasi di mana penceroboh/orang yang tidak dibenarkan boleh mengambil data dengan mudah dan ia boleh dikompromi. Keadaan ini boleh dikendalikan dengan mudah dengan menggunakan fungsi Hashing.

Fungsi hash menyulitkan data dalam bentuk sebenar tanpa mengubah maksudnya. Jadi, apabila pengguna memasukkan data dalam bentuk sebenar, data akan disulitkan di bahagian belakang dan dengan itu pengesahan dan kebenaran proses data berlaku. Algoritma cincang yang paling biasa digunakan ialah md5 (), sha1 () dan beberapa fungsi cincang. Algoritma ini digunakan oleh pembangun untuk mengesahkan data yang dimasukkan oleh pengguna adalah betul atau tidak untuk meneruskan proses selanjutnya.

1. MD5()

Algoritma ini ialah salah satu algoritma pencincangan berkuasa yang mengira cincang md5 iaitu cincangan nombor perenambelasan 16 atau 32 aksara bagi rentetan tertentu. Rentetan yang diluluskan ini akan ditukar kepada bentuk perenambelasan yang disulitkan.

Sintaks:

string md5 ($string, $getRawOutput)

Sintaks di atas menunjukkan $string sebagai rentetan input. Output mentah adalah input pilihan kerana pembangun ingin menukarnya kepada 16 bit atau 32 bit. Jika 16 bit perlu mendayakan ia perlu ditetapkan TRUE Boolean dan dihantar ke fungsi. Jika ia tidak ditetapkan maka lalai 32 bit ditetapkan secara automatik.

Contoh:

md5 (EduCBA, TRUE)

2. SHA1 ()

Algoritma ini ialah salah satu algoritma pencincangan berkuasa yang mengira cincangan sha1 iaitu cincangan format perduaan 20 aksara atau nombor perenambelasan 40 aksara bagi rentetan tertentu. Rentetan yang diluluskan ini akan ditukar kepada bentuk perenambelasan yang disulitkan.

Sintaks:

string sha1 ($string, $getRawOutput)

Sintaks di atas menunjukkan $string sebagai rentetan input. Output mentah adalah input pilihan kerana pembangun mahu ia menjadi 20 bit atau 40 bit. Jika 20 bit perlu mendayakan ia perlu ditetapkan TRUE Boolean dan dihantar ke fungsi. Jika ia tidak ditetapkan maka lalai 40 bit ditetapkan secara automatik.

Contoh:

sha1 (EduCBA, TRUE)

Fungsi Pencincangan dalam PHP

Di bawah yang disenaraikan ialah beberapa fungsi pencincangan yang digunakan dalam PHP untuk menyulitkan/menukar data daripada bentuk asal kepada bentuk cincang.

1. Hash_equals

Fungsi ini membandingkan dua rentetan pada masa yang sama sama ada sama atau tidak. Fungsi ini mengembalikan TRUE apabila rentetan adalah sama dan FALSE jika rentetan tidak sama. Kedua-dua hujah harus sama untuk membandingkan rentetan jika tidak, ia akan segera kembali palsu tanpa membandingkan rentetan mengikut abjad dan kadangkala panjang rentetan juga boleh didedahkan sekiranya berlaku serangan masa.

2. Hash_final

Fungsi ini mengembalikan ringkasan cincang rentetan input yang dihantar ke fungsi ini. Apabila output mentah ditetapkan kepada TRUE maka ia memberikan data binari mentah dan apabila ia ditetapkan kepada FALSE ia memberikan nombor perenambelasan huruf kecil. Fungsi ini mengembalikan ringkasan perenambelasan terkira rentetan sebagai output.

3. Hash_init

Fungsi ini digunakan bersama-sama dengan algoritma pencincangan iaitu md5 (), sha (), dsb. Fungsi ini bersama-sama dengan algoritma pencincangan menghasilkan output untuk digunakan dengan hash_update (), cincang akhir (), dll. Output bagi hash_init disimpan dalam rentetan atau pembolehubah dan dihantar ke mana-mana satu fungsi.

4. Hash_copy

Fungsi ini digunakan untuk menyalin konteks pencincangan. Rentetan yang diluluskan sebagai input kepada fungsi dicincang oleh salah satu algoritma yang digunakan dalam fungsi hash_init() dan output yang sepadan ialah rentetan cincang yang dihantar ke fungsi ini. Fungsi ini mengembalikan bentuk cincang keluaran yang diberikan oleh fungsi hash_init.

Examples of Hashing Function in PHP

The following is a list of hashing function in PHP explained in detail,

Example #1

Code:

<?php
$c = hash_init("md5");
hash_update($c, "content");
$copy_c = hash_copy($c);
echo hash_final($c);
hash_update($copy_c, "content");
echo hash_final($copy_c), "\n";
?>

Output:

Fungsi Hashing dalam PHP

Example #2

Code:

<?php
$expected  = crypt('leela123', '$2a$07$user$');
$right   = crypt('leela123', '$2a$07$user$');
$wrong = crypt('leeeela233',  '$2a$07$usedwrongstring$');
var_dump(hash_equals($expected, $right));
var_dump(hash_equals($expected, $wrong));
?>

Output:

Fungsi Hashing dalam PHP

Example #3

Code:

<?php
$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>

Output:

Fungsi Hashing dalam PHP

Conclusion

In this article, we discussed what is hashing and its various algorithms. Also, we discussed a few hashing functions used in PHP to encrypt the data to prevent malicious and vulnerable attacks. Because of these attacks, the data is not secure and loss of data occurs. So, the hashing technique was introduced so that there will be no loss of data and it will be secured by various attacks.

Atas ialah kandungan terperinci Fungsi Hashing dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Fungsi Rentetan PHPArtikel seterusnya:Fungsi Rentetan PHP