kenkundert / avendesora Goto Github PK
View Code? Open in Web Editor NEWCommand line collaborative password manager & generator
Home Page: https://avendesora.readthedocs.io
License: GNU General Public License v3.0
Command line collaborative password manager & generator
Home Page: https://avendesora.readthedocs.io
License: GNU General Public License v3.0
In order to make passphrases that satisfy requirements for numeric/uppercase/special characters enforced by many services, it's often necessary to add hard-coded prefixes or suffixes. However, doing this makes the passphrase feel more like a janky password. I think a more elegant solution would be to allow a different dictionary to be used for each word. This way, instead of a passphrase like "correct horse battery staple1!", you could have "correct horse battery staple 1+2=3". I think the latter is much easier to remember and more consistent with the idea of a passphrase.
I think the best way to do something like this is to provide the callable form of the dictionary argument to Passphrase
with the index of the desired word. This would allow dictionary functions like the following to be written:
def multi(*dictionaries):
"""
Use the given dictionaries in the given order. If there are fewer
dictionaries than words, the last dictionary will be used for all extra
words.
"""
def dictionary(i):
return dictionaries[min(i, len(dictionaries))]
return dictionary
def numbers(i):
return map(str, range(1000))
This would be used as follows, to generate passphrases like "123 correct horse battery":
class MyAccount(Account):
passcode = Passphrase(
dictionary=multi(numbers, 'default'),
)
Some miscellaneous related thoughts:
Don't feel any pressure to work on this. This has just been bugging me for a while, and I finally had an idea for how to address it, so I wanted to record it.
Looks beautiful. Thanks for your work. A keepass database importer would certainly help with migration ...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.