Generate a hash of a string

Compute the 32-bit hash Java’s String.hashCode uses.

JavaScript Version 1.0.0 · MIT · .md

generate-a-hash-of-a-string.js
function hashString(text) { return text.split('').reduce((hash, char) => (Math.imul(31, hash) + char.charCodeAt(0)) | 0, 0); }

Input & expected output

Input

"hello"

Expected output

99162322

The edge case

Input

""

Expected output

0

Know the limits

  • Not cryptographic and collision-prone: use it for bucketing, never for integrity. To authenticate data use HMAC-SHA256, as in the webhook signature lab.

The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.

Source & maintenance

Based on Generate a hash of a string from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.

Keeps the Math.imul variant; documents that it is not cryptographic. Original MDX retained as inert source evidence.

Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.

Local fixture scope · Node.js 22.23.2 · reviewed October 28, 2026. No external service is required.

Keep exploring

Type two or more characters. Try “duplicate”, “webhook” or “retry”.