Функція хешування в PHP - Як функція хешування працює у php із синтаксисом?

Зміст:

Anonim

Вступ до функції хешування в PHP?

Перш ніж зрозуміти поняття хеш-функції в PHP, давайте розберемося, що таке хешування?

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

У PHP використовуються хеш-функції та алгоритми для шифрування даних, завдяки чому пошук стає простішим та швидшим, ніж вихідне значення. Хеш-функції використовуються для полегшення процесу, оскільки він індексує початкове значення, і він використовується щоразу, коли це потрібно. Це завжди одностороння операція. Хороша хеш-функція не повинна створювати однакове значення виводу або хеша для двох або багатьох різних входів, введених користувачем. Якщо хеш-функція виробляє однаковий вихід для двох різних входів, цей процес відомий як зіткнення.

Як працює функція хешування та її синтаксис?

PHP - це серверна мова програмування, і його основна роль полягає в тому, щоб вона обробляла функціональні можливості, необхідні для конкретного додатка. У цьому процесі аутентифікація відіграє важливу роль, оскільки вразливості можуть легко експлуатувати дані. Один із способів захисту даних - це зберігання їх у базі даних у первісному вигляді, але це може призвести до ситуації, коли зловмисник / несанкціонована особа може легко взяти дані, і це може бути порушено. З цією ситуацією можна легко впоратися за допомогою функцій Hashing.

Функції хешу шифрують дані в їх справжньому вигляді, не змінюючи їх значення. Таким чином, коли користувач вводить дані в їх справжньому вигляді, дані будуть зашифровані в заднім часі, і таким чином відбувається аутентифікація та авторизація процесу обробки даних. Найчастіше використовуються хеш-алгоритми - 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. Хеш_фінал

Ця функція повертає хеш-дайджест вхідного рядка, переданого цій функції. Якщо вихідний вихідний параметр встановлений на ІСТИНУ, то він видає необроблені двійкові дані, а коли він задається значення FALSE, він дає нижнє шістнадцяткове число. Ця функція повертає обчислений шістнадцятковий дайджест рядка як вихід.

3. Hash_init

Ця функція використовується разом з алгоритмами хешування, тобто md5 (), sha () тощо. Ця функція разом з алгоритмами хешування дає результат для використання з hash_update (), хеш-фінал () і т.д. Вихід хеш_ініта зберігається в рядку або змінній і передається будь-якій з функцій.

4. Hash_copy

Ця функція використовується для копіювання контексту хешування. Рядок, переданий як вхід до функції, хеширується одним з алгоритмів, що використовуються у функції hash_init (), і відповідним висновком буде хешована рядок, яка передається цій функції. Ця функція повертає хешовану форму виводу, задану функцією hash_init.

Приклади функцій хешування в 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 для шифрування даних для запобігання зловмисних та вразливих атак. Через ці атаки дані не захищені і відбувається втрата даних. Отже, техніка хешування була введена так, щоб не було втрат даних, і вона буде захищена різними атаками.

Рекомендовані статті

Це посібник з функцій хешування в PHP. Тут ми обговорюємо його функціонування, синтаксис та топ-4 хеш-функції у PHP із прикладами та реалізацією коду. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Типи функцій в PHP з прикладами
  2. Як перевірити паліндром у PHP?
  3. Сортування асоціативного масиву в PHP
  4. Як перетворити формат дати в PHP?