Ну, почти все хеш-функции имеют свойство, заключающееся в том, что небольшие изменения во входных данных приводят к значительным изменениям в выходных данных, что означает, что «somefolder1» и «somefolder2» всегда будут давать различный хеш.
Что касается столкновений, просто посмотрите, насколько велик выход хеша. Собственный Java hashcode()
возвращает int
, поэтому вы можете ожидать столкновения чаще, чем с MD5 или SHA-1 , например, которые дают 128 и 160 бит соответственно.
Вы не должны пытаться создавать такую функцию с нуля.
Однако я не совсем понял, должны ли столкновения когда-либо происходить с вашим вариантом использования или они допустимы, если встречаются редко. Для связывания папок я бы определенно использовал гарантированный уникальный идентификатор вместо того, что могло бы произойти более одного раза.