Увод у функцију хеширања у ПХП-у?
Пре него што схватимо концепт хасхинг функције у ПХП-у, разумемо шта је хеширање?
Хасхинг је трансформација скупа знакова у вредност фиксне дужине или кључ који представља изворни низ. Хасхинг се користи у бази података и за индексирање и дохваћање ставки, јер је брже и лакше пронаћи предмет уз помоћ краћих кључева, него ако га пронађете с изворном вриједношћу. Такође се користи у многим алгоритмима за шифровање из пословне перспективе.
У ПХП-у се функције шифрирања и алгоритми користе за шифрирање података тако да претраживање постаје лакше и брже од првобитне вриједности. Хасх функције се користе да би се олакшао процес јер индексира оригиналну вредност и користи се сваки пут кад год је потребно. То је увек једносмерна операција. Добра хасх функција не би требало да производи исти излаз или хеш вредност за два или више различитих улаза које корисник унесе. Ако хасх функција производи исти излаз за два различита улаза, овај процес је познат и као судар.
Како функционира хешинг функција и њена синтакса?
ПХП је програмски језик на страни сервера и његова главна улога је да мора обрадити позадинску функционалност потребну за одређену апликацију. У овом процесу, аутентификација игра виталну улогу јер рањивости лако могу искористити податке. Један од начина осигурања података је њихово чување у бази података у изворном облику, али то би могло довести до ситуације када уљез / неовлаштена особа може лако да преузме податке и може бити угрожен. Овом се ситуацијом може лако средити коришћењем хешинг функција.
Хасх функције шифрирају податке у њиховом правом облику без промијене значења. Дакле, када корисник унесе податке у свом правом облику, подаци ће се шифрирати у помоћном простору и на тај начин се догодити аутентификација и ауторизација процеса података. Најчешће коришћени хасх алгоритми су мд5 (), сха1 () и неколико хасх функција. Ове алгоритме програмер користи да потврди да су подаци које је корисник унео тачно или да не настављају даље са поступком.
1. МД5 ()
Овај алгоритам је један од моћних хасх алгоритама који израчунава мд5 хасх, односно хеш са 16 или 32 хексака са шест знакова одређеног низа. Овај прослеђени низ биће претворен у шифровани шеснаести облик.
Синтакса: стринг мд5 ($ стринг, $ гетРавОутпут)
Горња синтакса је означила $ стринг као улазни низ. Необрађени излаз је опционални улаз јер програмер жели да га претвори у 16 или 32 битни. Ако 16 бит мора омогућити, треба поставити ТРУЕ Боолеан и пребацити на функцију. Ако није постављено, тада ће се задати 32 битна подешавања аутоматски.
Пример: мд5 (ЕдуЦБА, ТРУЕ)
2. СХА1 ()
Овај алгоритам један је од моћних хасх алгоритама који израчунава сха1 хасх, тј. Хасх од 20 карактера бинарног формата или 40-знаковних шеснаестих броја одређеног низа. Овај прослеђени низ биће претворен у шифровани шеснаести облик.
Синтакса: стринг сха1 ($ стринг, $ гетРавОутпут)
Горња синтакса је означила $ стринг као улазни низ. Необрађени излаз је опционални улаз јер програмер жели да буде од 20 или 40 битних. Ако 20 битни то мора омогућити, мора се поставити ТРУЕ Боолеан и пренијети на функцију. Ако није постављено, тада ће се задати 40 бит аутоматски.
Пример: сха1 (ЕдуЦБА, ТРУЕ)
Хасхинг функција у ПХП-у
Доље набројано је неколико хасх функција које се користе у ПХП-у за шифровање / претварање података из оригиналног у распршени облик.
1. Хасх_екуалс
Ова функција упоређује два низа истовремено да ли су једнаки или не. Ова функција враћа ТРУЕ када су жице једнаке и ФАЛСЕ ако жице нису једнаке. Оба аргумената би требало да буду једнака ако упоредите низове, а остале ће се одмах вратити лажне без да се абецедно упоређују низови а понекад се може открити и дужина низа у случају временског напада.
2. Хасх_финал
Ова функција враћа хасх пробаву улазног низа просљеђеног овом функцијом. Када је необрађени излаз постављен на ТРУЕ, тада даје сирове бинарне податке, а када је постављен на ФАЛСЕ, он даје малу хексадецималну вредност. Ова функција враћа израчунати хексадецимални сажетак низа као излаз.
3. Хасх_инит
Ова се функција користи заједно са алгоритмима хасх-а, тј. Мд5 (), сха (), итд. Ова функција заједно са алгоритмима хасхинг-а производи излаз који се користи са хасх_упдате (), хасх финал (), итд. Излаз хасх_инит се похрањује у низу или променљивој и прослеђена је било којој од функција.
4. Хасх_цопи
Ова функција се користи за копирање контекста распршивања. Низ који се просљеђује као улаз у функцију хасхеира једним од алгоритама који се користе у функцији хасх_инит (), а одговарајући излаз би био хасхед стринг који је прослијеђен овој функцији. Ова функција враћа исправан облик излаза који даје функција хасх_инит.
Примери функције лежања у ПХП-у
Слиједи листа детаљних објашњења функције хасхпирања у ПХП-у,
Пример # 1
Шифра:
<_?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";
?>
Излаз:
Пример бр. 2
Шифра:
<_?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));
?>
Излаз:
Пример бр. 3
Шифра:
<_?php$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>
Излаз:
Закључак
У овом чланку смо разговарали о томе шта је хешинг и његови различити алгоритми. Такође смо дискутовали о неколико хасх функција које се користе у ПХП-у за шифровање података да би се спречили злонамјерни и рањиви напади. Због ових напада подаци нису безбедни и долази до губитка података. Дакле, уведена је техника хеширања тако да не буде губитка података и то ће бити обезбеђено различитим нападима.
Препоручени чланци
Ово је водич за функцију хешинга у ПХП-у. Овде смо расправљали о његовој радној, синтакси и топ 4 функцији хеширања у ПХП-у са примерима и имплементацијом кода. Такође можете погледати следеће чланке да бисте сазнали више -
- Врсте функција у ПХП-у са примерима
- Како проверити Палиндроме у ПХП-у?
- Поредање асоцијативног низа у ПХП-у
- Како претворити формат датума у ПХП?