Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Passphrase "MIXED case" Type #11255

Merged
merged 3 commits into from
Dec 26, 2024

Conversation

salevajo
Copy link
Contributor

@salevajo salevajo commented Sep 12, 2024

Description

Create passphrase using one UPPERCASE word in combination with lowercase words. Separator characters will be selected randomly out of the String provided by the user.

Screenshots

Screenshot from 2024-09-13 23-16-27

Testing strategy

A pattern based test is included in the TestPassphraseGenerator class.

Type of change

  • ✅ New feature (change that adds functionality)

@droidmonkey
Copy link
Member

Do not add the actual translations to a PR, just the English build from running the qt linguist tool.

However, this PR is unlikely to be merged as it defeats the purpose of a passphrase. The whole point is to be able to remember the passphrase. If that isn't your point, use a random password. Adding more randomness to a passphrase all but guarantees you'll forget it.

@salevajo
Copy link
Contributor Author

The intention is to create a passphrase variant, that can be remembered but can also fulfil additional requirements like numbers and symbols and uppercase letters.

It's for sure not a passphrase by definition, but still useful and usable. Due to the open separator character selection, it can be used quite flexible.

@droidmonkey
Copy link
Member

I actually didn't know you could add multiple characters to the separator field, lol

@droidmonkey
Copy link
Member

I'll merge this after thinking it through, no real harm.

@michaelk83
Copy link

michaelk83 commented Sep 13, 2024

IMHO, this is antithesis to passphrases and should not be merged. If some website allows the use of passphrases, but adds additional requirements like numbers etc, it would be better to satisfy those with fixed modifications, such as capitalizing the 1st letter or adding an easy to remember suffix like "123!".

None of this adds security to the passphrase, it is only to satisfy the misguided requirements of those websites. Although most websites that I know don't even allow enough characters to use a passphrase at all.

I would also disallow the use of multiple (random) separators, and stick to only one per passphrase.

Btw, why is there a duplicate character count, both below the word case, and in the entropy status line? The latter is enough.

@michaelk83
Copy link

michaelk83 commented Sep 13, 2024

How about this:

  • Limit the separator to a single character.
  • Add a "Captilized" word case instead of "MIXER", which only capitalizes the 1st letter of the passphrase.
  • Add a suffix field, which is appended at the end of the passprase.
  • Drop the duplicate Character Count below the Word Case.
  • Rearrange them on a single line: Word Case: [ ... ] Separator: [ ] Suffix: [ ]

@salevajo
Copy link
Contributor Author

My personal reason for implementing this variant is that I often need easy-to-type, yet complex passwords that are stored in KeePassXC and that I can use on systems that do not have the keystore themselves. Random passwords are much more difficult to type with the same complexity.

Frequently used, they are also usually easy to memorize. But that is not the primary goal of this implementation.

@droidmonkey
Copy link
Member

How about both "MIXER" (I don't like that name) and "Capitalized" are added. I think MIXER is better named "MIXED case"

@droidmonkey droidmonkey self-requested a review September 13, 2024 20:53
@salevajo salevajo changed the title Passphrase "MIXER case" Type Passphrase "MIXED case" Type Sep 13, 2024
@droidmonkey droidmonkey added this to the v2.7.10 milestone Oct 1, 2024
@droidmonkey droidmonkey force-pushed the feature/passphrase-mixer branch from b7dea0d to 83ef077 Compare October 1, 2024 16:09
@droidmonkey
Copy link
Member

I removed the code that picked from the list of separators, that isn't a desired behavior for passphrase generation.

I also removed the extra character count display on the passphrase generator tab.

@droidmonkey droidmonkey force-pushed the feature/passphrase-mixer branch 2 times, most recently from 8ec7e6c to b1d4d7f Compare October 8, 2024 04:06
@phoerious phoerious added pr: new feature Pull request that adds a new feature and removed new feature labels Nov 22, 2024
Stephan Heffner and others added 3 commits December 25, 2024 21:26
An additional approach to create passphrases with one random word being in UPPERCASE.
@droidmonkey droidmonkey force-pushed the feature/passphrase-mixer branch from b1d4d7f to c0458a9 Compare December 26, 2024 02:31
@droidmonkey droidmonkey merged commit e76e9d4 into keepassxreboot:develop Dec 26, 2024
9 checks passed
droidmonkey added a commit that referenced this pull request Jan 3, 2025
* An additional approach to create passphrases with one random word being in UPPERCASE.
* Also remove duplicate character count from passphrase generator

---------

Co-authored-by: Stephan Heffner <[email protected]>
Co-authored-by: Jonathan White <[email protected]>
@droidmonkey droidmonkey added the pr: backported Pull request backported to previous release label Jan 19, 2025
pull bot pushed a commit to Graysonbarton/keepassxc that referenced this pull request Jan 26, 2025
* An additional approach to create passphrases with one random word being in UPPERCASE.
* Also remove duplicate character count from passphrase generator

---------

Co-authored-by: Stephan Heffner <[email protected]>
Co-authored-by: Jonathan White <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr: backported Pull request backported to previous release pr: new feature Pull request that adds a new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants