https://github.com/oglinuk/sbh
A stateless password manager.
https://github.com/oglinuk/sbh
cryptography go hash password password-manager security
Last synced: 8 months ago
JSON representation
A stateless password manager.
- Host: GitHub
- URL: https://github.com/oglinuk/sbh
- Owner: oglinuk
- License: apache-2.0
- Created: 2020-12-26T21:50:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-03-12T16:19:01.000Z (over 4 years ago)
- Last Synced: 2025-01-21T09:48:57.332Z (over 1 year ago)
- Topics: cryptography, go, hash, password, password-manager, security
- Language: Go
- Homepage:
- Size: 68.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SecurityBaeHash
## Why
Passwords are the most vital part of everyday life. Any individual can
have numerous accounts across various applications, and each of those
accounts has an associated password. Unfortunately as the number of
accounts/passwords grows, people tend to re-use passwords. There are existing
solutions in the form of password managers, like keypassxc or lastpass, but
even those require an account/password. The issue that I have with password
managers is if the master key is compromised, then the attackers have the keys
to the kingdom.
Security Before anything else Hash (SBH) is a ***stateless password
manager***, meaning it doesnt retain any information. It doesnt require
an account, doesnt store any passwords, and it never will. A password
only exists when its retrieved, and the same password can only be
retrieved with the exact same inputs. No keys and no kingdom.
---
## How it Works
SBH is a combination of two things: [caesar
cipher](https://en.wikipedia.org/wiki/Caesar_cipher) and a [hash
function](https://en.wikipedia.org/wiki/Cryptographic_hash_function). It
takes three inputs: plaintext, a number of rotations, and a seed. SBH
then generates a hash based on the result of applying X psuedo-randomly
generated rotations (0 < n < 9223372036854775807) to the plaintext, where
X is the specified number of rotations. The resulting hash is then used
as the password.
---
## Examples
See the [examples](examples) directory.
For a publicly available web version please visit
.
---
## Todo
* [X] Add different hashing algorithm options
* [X] Add ability to add symbols and/or capitalize letters
* [ ] Add different cipher options
* [ ] Change letter capitalization
* [ ] Change where symbols are appended based on seed