smartpasslib

Smart Passwords Library for Rust

Cryptographic password generation and management without storage. Cross-platform deterministic passwords for Rust applications.


Smart Passwords Library: Cryptographic password generation and management without storage. Generate passwords from secrets, verify knowledge without exposure.

Cross-Platform Determinism: Same secret + same parameters = identical password on Rust, C#, Python, Kotlin, Go, JavaScript.

Decentralized by Design: No cloud, no database, no trust required.

No External Dependencies - Pure Rust, uses standard crypto.

  • Zero-Storage Security - No passwords or secret phrases are ever stored or transmitted
  • Decentralized Architecture - No central servers, no cloud dependency
  • Cross-Platform Deterministic Generation - SHA-256 based, identical across languages
  • Metadata Only - Store only public keys and descriptions
  • On-Demand Regeneration - Passwords are recalculated when needed
  • Cryptographically Secure - Uses SHA-256 and rand crate

  • Decentralized & Serverless - No central database, no cloud lock-in
  • Smart Password Generation - Deterministic from secret phrase
  • Public/Private Key System - 15-30 iterations for private key, 45-60 for public key (dynamic per secret)
  • Secret Verification - Verify secret without exposing it
  • Random Password Generation - Cryptographically secure random passwords
  • Authentication Codes - Short codes for 2FA/MFA (4-100 chars)
  • Metadata Manager - Store and manage password metadata locally
  • No External Dependencies - Pure Rust, uses standard crypto

  • Proof of Knowledge - Public keys verify secrets without exposing them
  • Decentralized Trust - No third party needed - you control your secrets completely
  • Deterministic Security - Same input = same output, always reproducible across platforms
  • Dynamic Iteration Counts - Private key uses 15-30 iterations, public key uses 45-60 iterations (deterministic per secret)
  • No Vulnerable Metadata Storage - Only public keys and descriptions can be stored (optional)
  • Zero Storage of Secrets - Secret phrases exist only in your memory, private keys are derived on-demand and never persisted
  • No Recovery Backdoors - Lost secret = permanently lost passwords (by design)

  • Pointer-Based Security Paradigm - 10.5281/zenodo.17204738
    Architectural Shift from Data Protection to Data Non-Existence
  • Local Data Regeneration Paradigm - 10.5281/zenodo.17264327
    Ontological Shift from Data Transmission to Synchronous State Discovery

Key derivation (same as Python/JS/Kotlin/Go/C# versions v4.0.0):

Key TypeIterationsPurpose
Private Key15-30 (dynamic)Password generation (never stored, never transmitted)
Public Key45-60 (dynamic)Verification (stored locally)

Character Set:

!@#$%^&*()_+-=[]{};:,.<>?/ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz

Validation Rules:

  • Secret phrase: minimum 12 characters
  • Password length: 12-100 characters
  • Code length: 4-100 characters

Add to your Cargo.toml:

[dependencies]
smartpasslib = "4.0"

Generate Smart Password:

use smartpasslib::generate_smart_password_sync;

let secret = "MyStrongSecretPhrase2026!";
let password = generate_smart_password_sync(secret, 16).unwrap();
println!("{}", password);

Generate Public/Private Keys:

use smartpasslib::{generate_private_key, generate_public_key};

let secret = "MyStrongSecretPhrase2026!";

let public_key = generate_public_key(secret).unwrap();
let private_key = generate_private_key(secret).unwrap();

Verify Secret:

use smartpasslib::{generate_public_key, verify_secret};

let secret = "MyStrongSecretPhrase2026!";
let stored_public_key = "...";

let is_valid = verify_secret(secret, &stored_public_key).unwrap();

Generate Random:

use smartpasslib::{generate_strong_password, generate_code};

let strong = generate_strong_password(20).unwrap();
let code = generate_code(8).unwrap();

Metadata Manager:

use smartpasslib::{SmartPasswordManager, SmartPassword};

let mut manager = SmartPasswordManager::new().unwrap();

let sp = SmartPassword::new(public_key, "GitHub".to_string(), 16).unwrap();
manager.add(sp).unwrap();

let retrieved = manager.get(&public_key).unwrap();
manager.delete(&public_key).unwrap();

Constants:

ConstantTypeDescription
VERSION&strLibrary version (4.0.0)
CHARS&strCharacter set used for generation

Functions:

FunctionParametersReturnsDescription
generate_private_key(secret)secret: &strResult<String, Error>Private key (15-30 iterations)
generate_public_key(secret)secret: &strResult<String, Error>Public key (45-60 iterations)
verify_secret(secret, public_key)secret, public_keyResult<bool, Error>Verify secret matches public key
generate_smart_password_sync(secret, length)secret, lengthResult<String, Error>Deterministic password
generate_strong_password(length)length: usizeResult<String, Error>Cryptographically random
generate_base_password(length)length: usizeResult<String, Error>Simple random password
generate_code(length)length: usizeResult<String, Error>Short code (4-100 chars)

Classes:

ClassDescription
SmartPasswordMetadata container (public_key, description, length)
SmartPasswordManagerPersistent storage for password metadata (JSON file)

The same deterministic algorithm is available in multiple languages. SmartPassLib Rust produces identical passwords to:

LanguageRepository
Pythonsmartpasslib
JavaScriptsmartpasslib-js
Kotlinsmartpasslib-kotlin
Gosmartpasslib-go
C#smartpasslib-csharp
Rustsmartpasslib (this)

git clone https://github.com/smartlegionlab/smartpasslib-rs
cd smartpasslib-rs

cargo build
cargo test
cargo run --example demo
cargo bench
cargo doc --open

Commands:

  • cargo check - Compilation check
  • cargo test - Run tests
  • cargo run --example demo - Run demo
  • cargo bench - Run benchmarks
  • cargo doc --open - Documentation
  • cargo fmt - Format
  • cargo clippy - Linter

By using this software, you agree to the full disclaimer terms.

Software provided "AS IS" without warranty. You assume all risks.

Full legal disclaimer: See DISCLAIMER.md

License: BSD 3-Clause License

Links


Created by Alexander Suvorov Sr.

Copyright © 2026, Alexander Suvorov. All rights reserved.