| Crates.io | SaltPass |
| lib.rs | SaltPass |
| version | 0.1.3 |
| created_at | 2026-01-17 01:23:07.532196+00 |
| updated_at | 2026-01-25 05:36:16.884869+00 |
| description | A deterministic password generator based on cryptographic algorithms |
| homepage | https://github.com/YanLien/SaltPass |
| repository | https://github.com/YanLien/SaltPass |
| max_upload_size | |
| id | 2049661 |
| size | 123,942 |
π A deterministic password generator based on cryptographic algorithms. Just remember one salt, combine it with public feature identifiers, and generate unique strong passwords for every account. No password vault, no cloud sync, security in your control.
δΈζζζ‘£ | English Documentation
~/.saltpass/features.tomlzeroize# Clone the repository
git clone https://github.com/YanLien/SaltPass.git
cd SaltPass
# Build and run
cargo run --release
cargo build --release
# Binary will be at: ./target/release/SaltPass
1. Launch application
β
2. Enter master salt (stored in memory only)
β
3. Choose action from menu
β
4. Generate password / Add feature / Manage features
β
5. Password auto-copied to clipboard
β
6. Exit β salt cleared from memory
$ ./target/release/SaltPass
π Welcome to SaltPass - Deterministic Password Generator
π Storage: /Users/username/.saltpass/features.toml
π Enter your master salt (hidden): ********
β
Salt accepted (stored in memory only)
? What would you like to do?
β― Generate Password
Add New Feature
List All Features
Delete Feature
Exit
Feature name: GitHub
Feature identifier: github.com
? Select password generation algorithm
β― HMAC-SHA256 - Fast (Recommended for password generation)
Argon2i - Memory-hard (Slower, more secure)
Argon2id - Hybrid (Balanced)
PBKDF2 - Standard (Compatible)
Scrypt - Memory-hard (Slower)
Hint (optional, press Enter to skip): Personal account
β
Feature 'GitHub' added successfully!
? Select a feature to generate password
β― [HMAC-SHA256] GitHub (github.com) - Personal account
Password length (12-64): 16
π― Generated Password:
ββββββββββββββββββββββββββββββββββ
Feature: GitHub (github.com)
Algorithm: HMAC-SHA256
Password: Xy3!bN7kLmP9QrSt
Length: 16
ββββββββββββββββββββββββββββββββββ
π Password copied to clipboard!
// Salt - stored in memory only, auto-zeroed on drop
struct Salt {
salt_value: String // Protected by zeroize
}
// Feature - stored on disk
struct Feature {
name: String, // Display name (e.g., "GitHub")
feature: String, // Identifier (e.g., "github.com")
algorithm: Algorithm, // Password generation algorithm
created: DateTime<Utc>, // Creation timestamp
hint: Option<String> // Optional reminder
}
// Algorithm - available password generation algorithms
enum Algorithm {
HmacSha256, // Fast (default, recommended)
Argon2i, // Memory-hard (slower)
Argon2id, // Hybrid mode
Pbkdf2, // Standard PBKDF2-HMAC-SHA256
Scrypt, // Memory-hard (slower)
}
Input: Salt + Feature + Algorithm
β
Key Derivation Function (KDF)
β
(HMAC-SHA256 | Argon2i | Argon2id | PBKDF2 | Scrypt)
β
Base64 Encode
β
Format & Strengthen (ensure uppercase, digit, special char)
β
Output: Strong Password
| Algorithm | Type | Speed | Security | Use Case |
|---|---|---|---|---|
| HMAC-SHA256 | Fast | β‘β‘β‘ | πππ | Default, recommended for password generation |
| Argon2i | Memory-hard | β‘ | ππππ | Maximum security, slower |
| Argon2id | Hybrid | β‘β‘ | ππππ | Balanced security/performance |
| PBKDF2 | Standard | β‘β‘ | πππ | Wide compatibility |
| Scrypt | Memory-hard | β‘ | ππππ | ASIC-resistant, slower |
~/.saltpass/features.tomlC:\Users\Username\.saltpass\features.tomlβ οΈ WARNING: Encryption is experimental. If you forget your master salt, your data cannot be recovered.
Encrypted Storage (*.enc files):
Plain Text Storage (recommended):
zeroize crate with ZeroizeOnDrop trait# Run all tests
cargo test
# Test with verbose output
cargo test -- --nocapture
To update a password (e.g., after a breach), modify the feature identifier:
Original: github.com
Updated: github.com.v2
New: github.com.v3
Each version generates a completely different password.
To maintain security and simplicity, we will NOT implement:
MIT License - see LICENSE file
Contributions welcome! Please feel free to submit a Pull Request.
~/.saltpass/features.toml across devicesChoose one or more of these methods:
Memory Palace (Most Secure)
Physical Backup (Balanced)
Encrypted Digital Backup
Shamir's Secret Sharing (Advanced)
ssss (Shamir's Secret Sharing Scheme)There is NO recovery option. This is by design for maximum security.
If you lose your salt:
~/.saltpass/features.tomlWhen first setting up, SaltPass will: