Нужно задать вопрос, почему вы хотели бы это сделать? Если ваша база данных уже предоставляет вам уникальный идентификатор, зачем вам нужен другой уникальный идентификатор?
Вы также можете учесть, что вне PHP многие движки баз данных сгенерируют для вас первичные ключи в стиле UUID , если вам это нужно.
Дело в том, что алгоритмы хеширования, такие как sha1 (), не предназначены для этого типа работы; они предназначены для проверки того, что два (потенциально очень длинных) строковых входа одинаковы. Вероятность столкновения с похожей, но не точной строкой очень мала, но вероятность столкновения с очень разными строками становится намного выше.