Free · Private · Client-side
Salt Generator
Generate cryptographically random salt values for password hashing and other cryptographic operations. Salts ensure identical inputs produce different outputs.
Generated values never leave this device.Estimated entropy: 128 bits · 16 random bytes~391 million times the age of the universe to crack
Weak · <50 bitsFairGood · 70+Strong · 100+
In plain terms: a gaming PC guessing a million passwords per second would need 391 trillion times the age of the universe. Even someone renting every cloud server on Earth — a trillion guesses per second — would need 391 million times the age of the universe. Nobody is guessing this password; the only realistic risks are it being reused or phished.
Generated salts
Strong128 bits
Strong128 bits
Strong128 bits
Strong128 bits
Strong128 bits
Strong128 bits
Usage Examples
Python (bcrypt)
import bcrypt
password = b"user_password"
# bcrypt generates its own salt internally
hashed = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
# Verify
if bcrypt.checkpw(password, hashed):
print("Password matches!")Node.js (argon2)
const argon2 = require('argon2');
// argon2 generates salt internally
const hash = await argon2.hash('user_password');
// Verify
if (await argon2.verify(hash, 'user_password')) {
console.log('Password matches!');
}Manual salt usage
const crypto = require('crypto');
const salt = '...';
const password = 'user_password';
// PBKDF2 with custom salt
const hash = crypto.pbkdf2Sync(
password,
Buffer.from(salt, 'hex'),
100000, // iterations
64, // key length
'sha512'
).toString('hex');Why use salts?
- Prevents rainbow table attacks
- Ensures identical passwords hash to different values
- Makes precomputation attacks infeasible
- Salts should be unique per password, not secret
Bulk Generation
salts
Generate in Terminal
16-byte salt (hex)
$
openssl rand -hex 16Python
$
python3 -c "import secrets; print(secrets.token_hex(16))"Linux /dev/urandom
$
head -c 16 /dev/urandom | xxd -p -c 64