Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add FNV-1a hash algorithm implementation#7010

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
dinilH wants to merge1 commit intoTheAlgorithms:master
base:master
Choose a base branch
Loading
fromdinilH:master

Conversation

@dinilH
Copy link

Description

Add FNV-1a (Fowler-Noll-Vo) non-cryptographic hash function implementation.

Changes

  • AddFNV1aHash.java with 32-bit and 64-bit variants
  • Add comprehensive test suite with 30+ unit tests

Why This Contribution?

  • FNV-1a is a widely-used, fast hash function
  • Missing from current algorithm collection
  • Educational value for understanding hash functions
  • Used in real-world applications (hash tables, checksums)

Testing

✅ All tests pass
✅ Edge cases covered (empty, null, Unicode)
✅ Consistency and distribution verified
✅ Both String and byte array inputs tested

References

- Implement FNV-1a (Fowler-Noll-Vo) non-cryptographic hash function- Support both 32-bit and 64-bit hash variants- Hash from String or byte array input- Include hex string output methods- All operations have O(n) time complexity where n is input length- Space complexity O(1)Features:- Generic implementation supporting String and byte arrays- Proper null handling with IllegalArgumentException- Helper methods: hash32Hex() and hash64Hex() for hex output- UTF-8 encoding support for Unicode characters- Full JavaDoc documentationFNV-1a properties:- Fast computation using simple XOR and multiply operations- Good hash distribution minimizing collisions- Widely used in hash tables and checksums- Not suitable for cryptographic purposesTests:- 30+ comprehensive unit tests covering all methods- Edge cases: empty string, null input, Unicode- Consistency tests (same input -> same output)- Distribution tests (different inputs -> different outputs)- Both String and byte array input validationTime Complexity: O(n) where n is input lengthSpace Complexity: O(1)
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@DenizAltunkapanDenizAltunkapanAwaiting requested review from DenizAltunkapanDenizAltunkapan is a code owner

@yanglbmeyanglbmeAwaiting requested review from yanglbmeyanglbme is a code owner

@alxkmalxkmAwaiting requested review from alxkmalxkm is a code owner

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

@dinilH

[8]ページ先頭

©2009-2025 Movatter.jp