smchash
High-performance hash function passing all 188 SMHasher3 quality tests.
Features
- Fast: Passes all 188 SMHasher3 quality tests
- Built-in PRNG:
smcRand()passes BigCrush and PractRand - Pure Dart: No native dependencies
- Cross-platform: Works on all Dart/Flutter platforms
Installation
dependencies:
smchash: ^0.1.0
Usage
import 'dart:convert';
import 'package:smchash/smchash.dart';
void main() {
// Basic hashing
final data = utf8.encode('Hello, World!');
final hash = smchash(data);
print('Hash: 0x${hash.toRadixString(16)}');
// Seeded hashing
final seeded = smchashSeeded(data, 12345);
print('Seeded: 0x${seeded.toRadixString(16)}');
// PRNG
final rng = SmcRandState(42);
print('Random: ${rng.next()}, ${rng.next()}, ${rng.next()}');
}
API
Hash Functions
smchash(List<int> data)- Hash with default seedsmchashSeeded(List<int> data, int seed)- Hash with custom seed
PRNG
smcRand(int seed)- Returns(value, newSeed)tupleSmcRandState- Mutable wrapper for easier PRNG usage
License
MIT License - Copyright 2025 ScaleCode Solutions
Libraries
- smchash
- smcHash - High-performance hash function