aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/utils/hashUtils.ts
blob: 2e1fadff067c1d8e9337b1377dd0dee7a9deefd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

/**
 * Simple non-secure hashing function similar to Java's `hashCode`
 * @param str The string to hash
 * @return {number} a non secure hash of the string
 */
export const hashCode = function(str: string): number {
	let hash = 0
	for (let i = 0; i < str.length; i++) {
		hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0
	}
	return (hash >>> 0)
}