android-password-store / Android-Password-Store

Android application compatible with ZX2C4's Pass command line application
https://passwordstore.app
GNU General Public License v3.0
2.54k stars 250 forks source link

[FEATURE] Choose password generation type (classic vs XKPasswd) at generation time, not in settings #1546

Open pinusc opened 2 years ago

pinusc commented 2 years ago

Is your feature request related to a problem? Please describe.

I want some of my passwords to be passphrases (XKPasswd) and some to be classic alphanumeric passwords. Currently, switching between the two generation methods requires going to settings, which is cumbersome – and if I've already started filling out the rest of the fields (username, password name) before I realize that the current setting is not what I want, I have to start from scratch.

Describe the solution you'd like

There are multiple ways to approach this problem:

  1. When the "Generate" window is open, show a dropdown menu to choose the type of generator. This could be in place of the window title (e.g. XKpasswd Generator) and be pretty seamless.
  2. Instead of one "Generate" button that follows the current setting, show two buttons (one for classic, one for XKP). This is easier to implement but less seamless; although there could be a setting to decide whether to show one button (and which) or both.

Describe alternatives you've considered

The two solutions above are just what comes to mind. There might be other/better solutions. I'm not sure if there's any argument to only keep this in the settings menu; perhaps I am the only one to want to use both

Additional context

I would be happy to work on this if it's something that other people want to see as well.

msfjarvis commented 2 years ago

I think this is a reasonable request, but from a UX point of view neither option is that great IMO. Password generation has enough user-configurable knobs already, and throwing in another password generator option adds needless complexity for users who don't particularly care for it (myself included). I'm sympathetic to the feature request itself but there's fairly low demand for this and no good way to implement it without getting in the way of the majority who don't need it.

ArcherN9 commented 8 months ago

I've experienced a couple of instances wherein I would have preferred the ability to easily shift between different password generator types. However, its imperative to discern why.

For me, the new Diceware seemed great. The ability to have easily pronounceable phrases as passwords gives me the ability to type them out on a third system by either memorizing them or reading them out from the phone. However, the inability to use Diceware stems from a different issue - non-relevant to this discussion. Perhaps I'll link it here after I've posted a feature request.

With that in mind, I'd focus energy on improving Diceware interface on APS such that the requirement to switch between algorithms doesn't arise to begin with. However, @pinusc if you're still around; Could you explain what use cases would warrant this feature?

I can probably think of one based on my workflows but eager to hear yours.

pinusc commented 7 months ago

In my workflow, it mostly depends on the context I expect to use my password in.

Basically, it boils down to the fact that passphrases exist because sometimes passwords have to be typed or remembered outside of the manager. I want them in those cases; usually I'm fine with having everything be a passphrase, but there are some cases where a very short password is desirable to me, and then I am forced to switch to normal generation.

By the way, for comparison, KeepassXC does allow both generations. Screenshots below of the PC interface. The android app also allows switching between password and passphrase at generation time, but it does not allow screenshots.

From a UI/UX standpoint, I think they get it right; the android version (KeepassDX) has "tabs" at the bottom of the password generation interface to switch between password and passphrase. I think this is perfect, and much better than my earlier proposal for a dropdown or separate button. It's clear, it's unintrusive, and if you're not looking for it it's easy to ignore it. I wish I could easily provide a screenshot...

On a separate note, I also think the naming matters, and they got it right by calling it passphrase, which is correct, descriptive, and independent of the underlying generation. Keepass uses the EFF large wordlist by default, which is arguably a minor improvement over diceware/xkpass; in fact, calling it a "passphrase generator" would allow this app to easily switch sources, or even to let the user define their own wordlist, without then being a misnomer. It is also intuitive for users, who might not be familiar with xkcd or diceware...

2024-01-24T15:51:07 2024-01-24T15:50:55

ArcherN9 commented 7 months ago

Interesting. I resonate with a lot of what you write above. There are a few instances when I would prefer to use a passphrase simply because pasting from a clipboard is disabled on those websites and I see the value in this feature. From a demand perspective, we could only take cues from our own experience as opposed to looking at a feature request since there is none.

I'd be interested to implement this; Some assistance from a UI perspective is required. Unsure how latter is fulfilled on opensource projects.