Какими методами можно создать функцию хеширования, которая бы давала уникальные значения для различных входных данных?

Создать функцию хеширования, которая даёт уникальные значения для различных входных данных, в общем случае невозможно из-за ограниченного размера хеша (коллизии неизбежны).

Короткий ответ

Что ответить на собеседовании

Создать функцию хеширования, которая даёт уникальные значения для различных входных данных, в общем случае невозможно из-за ограниченного размера хеша (коллизии неизбежны). Однако можно минимизировать вероятность коллизий, используя криптографические хеш-функции или UUID.

Подробный разбор

Ответ с пояснениями

Создать функцию хеширования, которая даёт уникальные значения для различных входных данных, в общем случае невозможно из-за ограниченного размера хеша (коллизии неизбежны). Однако можно минимизировать вероятность коллизий, используя криптографические хеш-функции или UUID.

В Python для создания хеша можно использовать модуль hashlib с алгоритмами, например, SHA-256:

import hashlib

def hash_data(data: str) -> str:
    return hashlib.sha256(data.encode('utf-8')).hexdigest()

# Пример использования
print(hash_data('пример входных данных'))

Если нужна уникальность для идентификаторов, можно использовать UUID:

import uuid

unique_id = uuid.uuid4()
print(unique_id)

Таким образом, для уникальных значений лучше использовать UUID, а для хеширования — криптографические функции с низкой вероятностью коллизий.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее