Хешування (Hashing)
Хешування — це перетворення вхідних даних будь-якого обсягу в унікальний рядок символів фіксованої довжини.
Workflows: 1. Input preprocessing (padding). 2. Iterative function application. 3. Finalization. Use cases: Data deduplication, Load balancing (consistent hashing), Digital signatures.
graph LR
Center["Хешування (Hashing)"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Це як зробити пюре з фруктів. Ти можеш зробити пюре з яблука, і воно буде мати яблучний колір і смак. Ти можеш зробити пюре з банана. Але ти ніколи не зможеш перетворити пюре назад на ціле яблуко. Комп'ютер робить таке 'пюре' з твоїх паролів, щоб ніхто не міг їх вкрасти.
🤓 Expert Deep Dive
На технічному рівні ми використовуємо 'Сіль' (Salt) під час хешування паролів. Сіль — це випадковий набір знаків, який додається до пароля перед хешуванням. Це робиться для того, щоб навіть якщо два користувачі мають однаковий пароль '12345', їхні хеші в базі даних виглядали абсолютно по-різному. Це захищає від атак за допомогою заздалегідь обчислених таблиць хешів (Rainbow Tables).