Криптографічні хеші використовуються в повсякденному житті, як-от цифрові підписи, коди автентифікації повідомлень, виявлення маніпуляцій, відбитки пальців, контрольні суми (перевірка цілісності повідомлень), хеш-таблиці, зберігання паролів і багато іншого. Вони також використовуються для надсилання повідомлень через мережу для безпеки або зберігання повідомлень у базах даних.
Існує багато хеш-функцій, визначених у хешліб бібліотека на python. Ця стаття присвячена поясненню та роботі хешу MD5.
Ця хеш-функція приймає послідовність байтів і повертає 128-бітове хеш-значення , зазвичай використовується для перевірки цілісності даних, але має проблеми з безпекою. Пов'язані функції:
- encode() : перетворює рядок на байти, щоб бути прийнятним хеш-функцією. digest() : повертає закодовані дані в байтовому форматі. hexdigest() : повертає закодовані дані в шістнадцятковому форматі.
Примітка:
Бібліотека md5 була бібліотекою Python, яка забезпечувала простий інтерфейс для створення хешів MD5.
Ця бібліотека застаріла на користь бібліотеки hashlib, яка забезпечує більш гнучкий і безпечний інтерфейс для створення хешів.
Наведений нижче код демонструє роботу хешу MD5, який приймає байти та виводить як байти.
Python3
динамічний масив java
javafx на eclipse
# Python 3 code to demonstrate the> # working of MD5 (byte - byte)> import> hashlib> # encoding techcodeview.com using md5 hash> # function> result> => hashlib.md5(b> 'techcodeview.com'> )> # printing the equivalent byte value.> print> ('The byte equivalent of> hash> is> : ', end> => '')> print> (result.digest())> |
>
чому інтерфейс маркера в java
>
Вихід:
The byte equivalent of hash is : b'xf1xe0ix~xcetSx1dx11%Yx94hq'>
Пояснення: Наведений вище код займає байт і може бути прийнятий хеш-функцією. Хеш-функція md5 кодує його, а потім за допомогою digest() друкує закодований рядок, еквівалентний байтам.
Наведений нижче код демонструє, як приймати рядок як вхідний і вихідний шістнадцятковий еквівалент закодованого значення.
Python3
регулярний вираз java
# Python 3 code to demonstrate the> # working of MD5 (string - hexadecimal)> import> hashlib> # initializing string> str2hash> => 'techcodeview.com'> # encoding techcodeview.com using encode()> # then sending to md5()> result> => hashlib.md5(str2hash.encode())> # printing the equivalent hexadecimal value.> print> ('The hexadecimal equivalent of> hash> is> : ', end> => '')> print> (result.hexdigest())> |
python зменшити
>
>
Вихід:
The hexadecimal equivalent of hash is : f1e069787ece74531d112559945c6871>
Пояснення: Наведений вище код бере рядок і перетворює його в байтовий еквівалент за допомогою encode(), щоб він міг бути прийнятий хеш-функцією. Хеш-функція md5 кодує його, а потім за допомогою hexdigest() друкує шістнадцятковий еквівалентний кодований рядок.