class

Pwgen::PhonemeGenerator

Inherits Pwgen::Generator < Reference < Object

Generates pronounceable passwords using phonetic rules.

This generator creates passwords by combining phonetic elements (consonants, vowels, and diphthongs) according to pronunciation rules, making them easier to remember and type.

Constants

ELEMENTS = [Element.new("a", ElementFlag::Vowel), Element.new("ae", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("ah", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("ai", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("b", ElementFlag::Consonant), Element.new("c", ElementFlag::Consonant), Element.new("ch", ElementFlag::Consonant | ElementFlag::Diphthong), Element.new("d", ElementFlag::Consonant), Element.new("e", ElementFlag::Vowel), Element.new("ee", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("ei", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("f", ElementFlag::Consonant), Element.new("g", ElementFlag::Consonant), Element.new("gh", (ElementFlag::Consonant | ElementFlag::Diphthong) | ElementFlag::NotFirst), Element.new("h", ElementFlag::Consonant), Element.new("i", ElementFlag::Vowel), Element.new("ie", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("j", ElementFlag::Consonant), Element.new("k", ElementFlag::Consonant), Element.new("l", ElementFlag::Consonant), Element.new("m", ElementFlag::Consonant), Element.new("n", ElementFlag::Consonant), Element.new("ng", (ElementFlag::Consonant | ElementFlag::Diphthong) | ElementFlag::NotFirst), Element.new("o", ElementFlag::Vowel), Element.new("oh", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("oo", ElementFlag::Vowel | ElementFlag::Diphthong), Element.new("p", ElementFlag::Consonant), Element.new("ph", ElementFlag::Consonant | ElementFlag::Diphthong), Element.new("qu", ElementFlag::Consonant | ElementFlag::Diphthong), Element.new("r", ElementFlag::Consonant), Element.new("s", ElementFlag::Consonant), Element.new("sh", ElementFlag::Consonant | ElementFlag::Diphthong), Element.new("t", ElementFlag::Consonant), Element.new("th", ElementFlag::Consonant | ElementFlag::Diphthong), Element.new("u", ElementFlag::Vowel), Element.new("v", ElementFlag::Consonant), Element.new("w", ElementFlag::Consonant), Element.new("x", ElementFlag::Consonant), Element.new("y", ElementFlag::Consonant), Element.new("z", ElementFlag::Consonant)]

Phonetic elements used for password generation. Each element has a text representation and flags indicating its type.

Instance methods

generate(length : Int32, flags : Feature, remove : String | Nil) : String

Generates a password with the specified parameters.

  • length: Length of the password to generate
  • flags: Feature flags controlling password characteristics
  • remove: Optional string of characters to exclude from generation

Returns a String containing the generated password.

Source