|
| 1 | +# Passbag |
1 | 2 |
|
| 3 | +_A Cross-Platform Password Strengthening Tool_ |
2 | 4 |
|
| 5 | +## 🚀 Purpose |
3 | 6 |
|
4 | | -Transform your weak passwords into super strong password. |
| 7 | +Passbag transforms weak, easy-to-remember passwords into strong, consistent passwords using cryptographic methods. It allows you to reliably regenerate the same secure password anytime, without needing to store it. |
5 | 8 |
|
6 | | -## About |
| 9 | +--- |
7 | 10 |
|
8 | | -This is app help you to generate a strong password. It combines two password to generate a strong password. |
| 11 | +## 💡 Motivation |
9 | 12 |
|
10 | | -It is implemented using flutter, so it can run in any platform, wether on mac, ios, android, or in browser. |
| 13 | +Traditional password managers often generate random, complex passwords that are hard to remember and reproduce without syncing tools. **passbag** offers a user-friendly alternative: |
11 | 14 |
|
12 | | -## Algorithm |
| 15 | +- Enter two memorable "seed" passwords |
| 16 | +- Combine them using a deterministic algorithm |
| 17 | +- Generate a strong password that you can always recreate |
13 | 18 |
|
14 | | -1. Provide your own secret from example secret |
15 | | -2. Provide your weak password for example mbags |
16 | | -3. Perfom hashing and encoding for your provided secret and weak password to generat a fixed length strong password |
17 | | -4. Get your strong password |
| 19 | +This method allows you to: |
18 | 20 |
|
19 | | -- No information is saved in browser or database, you own your own password |
| 21 | +- Avoid password fatigue |
| 22 | +- Maintain strong security hygiene |
| 23 | +- Stay in control of your credentials |
20 | 24 |
|
| 25 | +--- |
21 | 26 |
|
| 27 | +## 🔐 How It Works |
22 | 28 |
|
| 29 | +**Current Implementation:** |
23 | 30 |
|
| 31 | +- **HMAC-SHA256** (via `cryptoHmacSha256`): A secure and widely trusted hashing algorithm |
| 32 | +- **Base64 Encoding**: Converts hashed output into a readable format |
24 | 33 |
|
| 34 | +### Example Flow: |
25 | 35 |
|
| 36 | +1. User enters two weak passwords: `pass1` and `pass2` |
| 37 | +2. The tool computes `HMAC_SHA256(pass1, pass2)` using Dart's `cryptoHmacSha256` |
| 38 | +3. The result is base64-encoded |
| 39 | +4. Output is a strong, deterministic password |
26 | 40 |
|
| 41 | +> The same input pair always produces the same secure output. |
27 | 42 |
|
| 43 | +--- |
28 | 44 |
|
| 45 | +## ✅ Features |
29 | 46 |
|
| 47 | +- 🔁 Reproducible strong passwords |
| 48 | +- 🧠 Works with memorable inputs |
| 49 | +- 🌍 Cross-platform (Flutter: mobile, web, and desktop) |
| 50 | +- 🗃️ No password storage required |
| 51 | +- 📶 Works offline |
30 | 52 |
|
| 53 | +--- |
31 | 54 |
|
32 | | -A cross-platform password strengthening tool |
33 | | -[Passbag](./lib/assets/images/logo.png) |
34 | | -## Purpose |
| 55 | +## 📅 Roadmap & Future Plans |
35 | 56 |
|
36 | | -Transforms weak passwords into stronger ones by combining two weak passwords into a single, more secure password using a one-way algorithm. |
| 57 | +### 🔄 Algorithm Flexibility |
37 | 58 |
|
38 | | -## Motivation |
| 59 | +- [ ] Support additional hash algorithms (SHA3, BLAKE2, etc.) |
| 60 | +- [ ] Allow custom encoding options (hex, base64url, etc.) |
| 61 | +- [ ] Add salt/pepper configurations for advanced users |
39 | 62 |
|
40 | | -Browser password managers often generate random passwords that are hard to reproduce. Passbags solves this by: |
| 63 | +### 🧬 Biometric Integration |
41 | 64 |
|
42 | | -- Taking two easy-to-remember passwords as input |
43 | | -- Combining them using a consistent algorithm |
44 | | -- Producing the same strong password every time |
| 65 | +- [ ] Enable **fingerprint or face ID** as a third input |
| 66 | + - Biometric hash included in final password generation |
| 67 | + - Deterministic per device or stored key |
| 68 | + - Useful for added security without sacrificing usability |
45 | 69 |
|
46 | | -This allows users to: |
| 70 | +### 📱 Platform Support (All via Flutter) |
47 | 71 |
|
48 | | -1. Generate strong passwords |
49 | | -2. Recreate the same password when needed |
50 | | -3. Keep using simple passwords as seeds |
| 72 | +- [ ] **Mobile apps**: Android & iOS |
| 73 | +- [ ] **Web app**: PWA with offline support |
| 74 | +- [ ] **Desktop app**: Windows, macOS, and Linux (built using Flutter) |
51 | 75 |
|
52 | | -## How It Works |
| 76 | +### 🧩 Advanced Customization |
53 | 77 |
|
54 | | -Just input two weak passwords, and passbags will combine them into one stronger password that you can reliably regenerate anytime. |
| 78 | +- [ ] Output formatting options: |
| 79 | + - Custom password length (e.g. 12, 16, 20+ characters) |
| 80 | + - Define character sets (symbols, upper/lowercase, digits, etc.) |
| 81 | + - Choose from different output styles (secure hash, passphrase, PIN) |
| 82 | +- [ ] Masked mode to hide password on screen |
55 | 83 |
|
| 84 | +### 🔐 Custom Output & Encryption Options |
| 85 | + |
| 86 | +- [ ] Ability to define a password schema: |
| 87 | + - e.g. "16 characters: 4 digits, 4 uppercase, 4 symbols, 4 lowercase" |
| 88 | +- [ ] Option to encrypt the generated password: |
| 89 | + - With a user-provided passphrase or key |
| 90 | + - Useful for secure sharing or device-specific protection |
| 91 | +- [ ] Output encryption options: |
| 92 | + - AES-based encryption with user seed |
| 93 | + - One-time encryption with QR export |
| 94 | + - Encrypted backups of input/output pairs (optional and opt-in only) |
| 95 | + |
| 96 | +### 🛡️ Enhanced Security |
| 97 | + |
| 98 | +- [ ] Optional local encryption for input history (if stored) |
| 99 | +- [ ] Integration with vetted crypto libraries (like libsodium) |
| 100 | +- [ ] Cryptographic audit and pen-testing support |
| 101 | + |
| 102 | +### 🧪 Testing & Usability |
| 103 | + |
| 104 | +- [ ] Fuzz tests and unit testing for hashing module |
| 105 | +- [ ] A/B testing for UX improvements |
| 106 | +- [ ] Full accessibility support (screen readers, keyboard-only nav, etc.) |
| 107 | + |
| 108 | +--- |
| 109 | + |
| 110 | +## 🧠 Inspired By |
| 111 | + |
| 112 | +A need for secure but memorable passwords, especially when switching devices, working offline, or avoiding over-dependence on cloud-based password managers. |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +## 🛠️ Installation |
| 117 | + |
| 118 | +Coming soon: |
| 119 | + |
| 120 | +- Web demo |
| 121 | +- Android APK & iOS TestFlight |
| 122 | +- Desktop builds (macOS, Windows, Linux) |
| 123 | + |
| 124 | +--- |
| 125 | + |
| 126 | +## 🤝 Contributing |
| 127 | + |
| 128 | +Want to help make passbag better? |
| 129 | + |
| 130 | +We're looking for: |
| 131 | + |
| 132 | +- Flutter developers (mobile, web, desktop) |
| 133 | +- Cryptography and security experts |
| 134 | +- UI/UX designers and testers |
0 commit comments