Функция на хеширане в PHP - Как функционира хеширането във php със синтаксис?

Съдържание:

Anonim

Въведение в функцията на хеширане в PHP?

Преди да разберем концепцията за хеширане функция в PHP, нека разберем какво е хеширане?

Хеширането е преобразуването на набор от знаци в стойност или ключ с фиксирана дължина, който представлява оригиналния низ. Хеширането се използва в базата данни, както и за индексиране и извличане на елементи, защото става по-бързо и лесно да се намери елемент с помощта на по-къси хеширани ключове, отколкото да се намери с оригиналната стойност. Той се използва и в много от алгоритмите за криптиране от бизнес гледна точка.

В PHP се използват хеширащи функции и алгоритми за криптиране на данните, така че търсенето става по-лесно и по-бързо от първоначалната стойност. Хеш функциите се използват, за да се улесни процесът, тъй като той индексира първоначалната стойност и се използва всеки път, когато е необходимо. Винаги е еднопосочна операция. Една добра хеш функция не трябва да произвежда една и съща изходна или хеш стойност за два или много различни входа, въведени от потребителя. Ако хеш функцията произвежда един и същ изход за два различни входа, този процес е известен като сблъсък.

Как работи функцията Hashing и нейният синтаксис?

PHP е език за програмиране от страна на сървъра и основната му роля е, че трябва да обработва резервната функционалност, необходима за конкретно приложение. В този процес автентификацията играе жизненоважна роля, тъй като уязвимостите могат лесно да използват данните. Един от начините за обезопасяване на данните е съхраняването им в базата данни в оригиналния им вид, но това би могло да доведе до ситуация, в която натрапникът / неоторизираното лице може да приема данните лесно и може да бъде компрометиран. Тази ситуация може да бъде лесно овладяна с помощта на Hashing функции.

Функциите на Hash криптират данните в истинската му форма, без това да променя значението им. Така че, когато потребителят въведе данните в истинската им форма, данните ще се кодират в задния ред и по този начин се извършва удостоверяване и упълномощаване на процеса на данни. Най-често използваните хеш алгоритми са md5 (), sha1 () и няколко хеш функции. Тези алгоритми се използват от разработчика, за да удостоверят въведените от потребителя данни е правилно или да не продължат по-нататък с процеса.

1. MD5 ()

Този алгоритъм е един от мощните хеширащи алгоритми, който изчислява хеша на md5, т.е. хеша от 16 или 32-знаков шестнадесетичен брой на определен низ. Предаденият низ ще бъде преобразуван в криптирана шестнадесетична форма.

Синтаксис: низ md5 ($ string, $ getRawOutput)

Горният синтаксис посочва $ низ като входен низ. Суровият изход е незадължителен вход, тъй като разработчикът иска да го преобразува в 16 или 32 бита. Ако трябва да се разреши 16 бита, трябва да се зададе TRUE Boolean и да се премине към функцията. Ако не е зададено, по подразбиране 32 бита се задава автоматично.

Пример: md5 (EduCBA, TRUE)

2. SHA1 ()

Този алгоритъм е един от мощните хеширащи алгоритми, който изчислява sha1 хеша, т.е. хеша от 20-символен двоичен формат или 40-знаков шестнадесетичен брой на определен низ. Предаденият низ ще бъде преобразуван в криптирана шестнадесетична форма.

Синтаксис: string sha1 ($ string, $ getRawOutput)

Горният синтаксис посочва $ низ като входен низ. Суровият изход е незадължителен вход, тъй като разработчикът иска да бъде от 20 бита или 40 бита. Ако трябва да се активира 20 бита, трябва да се зададе TRUE Boolean и да се премине към функцията. Ако не е зададено, то по подразбиране 40 бита се задава автоматично.

Пример: sha1 (EduCBA, TRUE)

Функция на хеширане в PHP

По-долу са изброени няколко хеширащи функции, използвани в PHP за криптиране / конвертиране на данните от оригинален в хеширан вид.

1. Hash_equals

Тази функция сравнява двата низа едновременно независимо дали са равни или не. Тази функция връща TRUE, когато струните са равни и FALSE, ако струните не са равни. И двата аргумента трябва да са еднакви, за да сравните низовете, иначе веднага ще се върне невярно, без дори да се сравняват низовете по азбучен ред и понякога дължината на низ може да бъде разкрита и в случай на атака по време.

2. Hash_final

Тази функция връща хеш дайджест на входния низ, предаден на тази функция. Когато суровият изход е зададен на ИСТИНСКА, тогава той дава необработени двоични данни, а когато е зададен на FALSE, дава шестнадесетично число с малки букви. Тази функция връща изчислен шестнадесетичен дайджест на низа като изход.

3. Hash_init

Тази функция се използва заедно с алгоритмите за хеширане, т.е. md5 (), sha () и т.н. Тази функция, заедно с алгоритмите за хеширане, произвежда изход, който да се използва с hash_update (), hash final () и т.н. Резултатът от hash_init се съхранява в низ или променлива и се предава на някоя от функциите.

4. Hash_copy

Тази функция се използва за копиране на контекста на хеширане. Низът, предаден като вход към функцията, се хешира от един от алгоритмите, използвани във функцията hash_init (), и съответният изход ще бъде хешираният низ, който се предава на тази функция. Тази функция връща хеширана форма на изхода, дадена от функцията hash_init.

Примери за Hashing функция в PHP

Следва списък на хеширащата функция в PHP, обяснен подробно,

Пример №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);
?>

изход:

заключение

В тази статия обсъдихме какво е хеширане и различните му алгоритми. Също така, обсъдихме няколко хеширащи функции, използвани в PHP за криптиране на данните за предотвратяване на злонамерени и уязвими атаки. Поради тези атаки, данните не са сигурни и настъпва загуба на данни. И така, техниката на хеширане беше въведена, за да няма загуба на данни и тя ще бъде обезопасена от различни атаки.

Препоръчителни статии

Това е ръководство за Hashing Function в PHP. Тук обсъждаме неговата работа, синтаксис и топ 4 хеширане функция в PHP с примери и реализация на код. Можете също да разгледате следните статии, за да научите повече-

  1. Видове функции в PHP с примери
  2. Как да проверите палиндром в PHP?
  3. Сортиране на асоциативен масив в PHP
  4. Как да конвертирате формат на дата в PHP?