Sobes.tech
Back to questions
Junior — Middle
63

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

Answer from AI

sobes.tech AI

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