Home
Name Modified Size InfoDownloads / Week
PassGen-2.3.4.dmg 2018-12-13 2.7 MB
PassGen-2.3.4.zip 2018-12-13 2.5 MB
README.md 2018-12-13 12.4 kB
PassGen-2.3.2.dmg 2018-06-20 2.5 MB
PassGen-2.3.2.zip 2018-06-20 2.3 MB
LICENSE 2018-06-20 18.0 kB
Totals: 6 Items   10.0 MB 0

PassGen 2.3.4

Password generator for Mac OS X written in Objective Python.

There are many password management applications out there, but they all lack a password generator which can create passwords a human can remember easily.

PassGen fills this gap with a wide variety of possible password it can create. Among passwords consisting of random letters, numbers and punctuations it can also generate mnemonic passwords consisting of words, numbers and punctuations. These kind of password are also hard to guess, but much more easy to remember for a human brain.

Password creation

The password creation in PassGen works on patterns, which instructs PassGen how to make a password.

A pattern is build by combining miscellaneous placeholders, where possible placeholder in patterns are:

A = random uppercase character [A-Z]
a = random lowercase character [a-z]
# = random symbol
D = random digit [0-9]
s = random lowercase short word from the dictionary length >= 4 and < 8
S = random capitalized short word from the dictionary length >= 4 and < 8
l = random lowercase long word from the dictionary length >= 8
L = random capitalized long word from the dictionary length >= 8
wX = random lowercase word from the dictionary length = X
WX = random capitalized long word from the dictionary length = X
random[XX] = generate a random password [with XX letters]
mnemonic[XX] = generate a random mnemonic password [with XX letters]

Comment: If a length of the password is given with the pattern (like random12), PassGen will ignore the length settings of the application. So said pattern will always go over settings.

By example:

W6D#W6      makes a password like "Frisco1!Whiled"
AA_DwDs     makes a password like "TD_9hieroglyph4trench"
WD_W        makes a password like "Extensible9_Bekesy"
mnemonic16  makes a mnemonic password with 16 letters like "1Frisco!Whiled"
random12    makes a random password with 12 letters like "Asd7+Gh#e0P!"

And so on, the possibilities are endless.

Random passwords

Passwords created with the 'random' pattern will always contain upper and lower case letters, numbers and special characters from the the symbol list. The symbol list is set to '_-.#*+=!$' as default, but you can give an own list of symbols with the '--symbols=' option on the command line. A own list of symbols for the GUI interface in not implemented at the moment, but can can change the list in the preferences file by using an text editor.

Mnemonic passwords

Passwords created with the 'mnemonic' pattern will always contain one or two words (dependent on the desired length of the password) from the selected dictionary, one number and one special character. At the moment there is an english and a german dictionary available. The minimal number of characters for a mnemonic password are 6, if you specify a smaller number a mnemonic password with a random length is created.

Dictionaries

The words PassGen use for password creation are stored in a dictionary with more than 40.000 different words in english or more than 30.000 words in german. More dictionaries can be implemented if there is enough interest and appropriate wordlists are present.

Configuration

Pattern

You have to give PassGen a pattern, see "Password Creation" above.

Length

You can set a specific length for the password, see Comment in "Password Creation" above. This option is disabled for patterns which does not use mnemonic or random.

Suggests

Tell PassGen how many password suggests to make. You can select the wanted password in the droplist. Please be aware that requesting a large number of suggests can lead to long calculation times.

Uppercase Capitals

PassGen will use upper case capital letters for the words in mnemonic passwords. This option is disabled for patterns which does not use mnemonic or random.

L33T

Use leetspeach, that means replace some characters by special characters and digits, see https://en.wikipedia.org/wiki/Leet . This option is disabled for patterns which does not use mnemonic or random.

Minimal Entropy

You can tell PassGen to only show passwords with a minimal entropy of XX. Be aware that using a high minimal entropy and short password can lead to very long calculations or an abort of the password creation.

Dictionary

Which dictionary should PassGen use. At the moment English and German are available.

Use With

This dropdown list will show all available plugins, see "Utilizing Password and Plugins" below.

Password entropy

There are we, the word "entropy" rang out the first time. Password entropy is a concept of how hard to guess a password is, which means in detail, that when an attacker tries to find out your password with a brute force attack password entropy can calculate how long this attacker has to try and fail before the password is cracked. PassGen calculates this entropy based on the "passwordmetrics" library by Lennart Regebro and shows it's results in a separate drawer, which can be shown by clicking on the "entropy bar" below the droplist where the created passwords are shown.

Utilizing Password and Plugins

PassGen can also utilize the created password in different way. What exactly the application does with the password is integrated with plugins. Some example plugins are installed into the "~/Library/Application Support/de.starfury.PassGen/plugins" folder, where you can have a look onto the examples and write your own. At the moment there is the Clipboard Plugin, which copies the password into the clipboard and clears the clipboard after 30 seconds and the MacPass Plugin which copies the password into the password field of the currently selected entry in the MacPass application (https://github.com/mstarke/MacPass). If you wrote a plugin and want to contribute to the code commit it to GitHub or send it well documented and with an expressive README to me.

PassGen installs the standard plugins when they are not found in the Application Support Folder.

If you have messed up the plugins folder you can reinstall it whith the menu item "Reinstall Plugins...".

Clipboard Plugin

The clipboard plugin does nothing else then copying the password to the clipboard for further use. The clipboard will be deleted after the time set in the preferences.

MacPass Plugin

The MacPass plugin will copy your password to the password field in the selected record of the MacPass application. MacPass must be running, unlocked and the desired record must be selected. If set in the perferences PassGen will copy the old password and the ate of changing into the comment field of the record.

Using MacPass plugin from command line

You can use the MacPass plugin from command line or utilize it in a Automator Service or Workflow. In this case you can make use of the "--macpass" option of the command line utility, if you have it installed with "Install shell command" in the file menu of PassGen. This option makes use of the setting you have configured in the password generator window of MacPass, where you can set the length of the password and some other parameters, which will be described here.

First check "Custom" button and enter one of the following pattern in the text field below:

mnic if you want to use a mnemonic password
rand if you want to use a random password
dflt if you want to use the default PassGen settings

You can seperate a list of symbol characters used when generting the password with the "|" Pipe character, e.g. "mnic|-" which means to use a mnemonic password, but only use unserscore and dash characters in the password. If no symbol list is given, the default symbols ("-.#*+=!$") are used.

The Length slider sets the length, which takes only effect, if you have "mnic" or "rand" as pattern

The buttons [A-Z], [a-z], [0-9] and [#!?] will enable the use of upper case letters (as capitals when using "mnic" or random uppercase letters when unsing "rand"), lower case letter (the default), digits and symbols. If you don't check the symbols button an given symbol list will be useless.

passgen --macpass

on the command line will now create a password with the configured parameter.

To use the MacPass plugin, you need a short python script:

import sys
sys.path.append("/Users/agross/Library/Application Support/de.starfury.PassGen/plugins")
password = sys.argv[1]
import plugin_MacPass as plugin
plugin.plugin().execute(password, store='YES', overwrite='YES', storedate='YES', macpasssettings='YES')

Create an Automator Action, first add "Run Shell Script", select "/bin/bash" as Shell and select "to stdin" as "Pass input", then paste

/usr/local/bin/passgen --macpass

below. Second add "Run Shell Script" another time, select "/usr/bin/python" as Shell and "as arguments" as "Pass input" , then paste

import sys
sys.path.append("/Users/agross/Library/Application Support/de.starfury.PassGen/plugins")
password = sys.argv[1]
import plugin_MacPass as plugin
plugin.plugin().execute(password, store='YES', overwrite='YES', storedate='YES', macpasssettings='YES')

below. Now save the Automator Action either as an Application (so opening the App will paste the password into MacPass) or as a Service for MacPass.

Plugin Configuration

The menu "Plugin Configuration" shows all installed plugins, which can be configured. If you select a plugin a key, value list of the possible parameter is shown. Please refer to the Plugin documentation for details.

Interfaces

PassGen comes with 3 interfaces

  1. The standard interface has the possibility to specify all the possible options for password creation, use this interface for configuration of your personal password creation policy. PassGen acts like every other appliciation with a main menu and a dock icon.

  2. A press on the button with the two arrows pointing together collapses the standard interface to the simple interface, which is shown in upper right corner of your screen. This interface shows only:

  3. The password
  4. An overall strength
  5. The button for generating a new password
  6. The button to use this password with the plugin configured
  7. The button to expand the simple interface to the standard interface
  8. The exit button

While in this interface mode, PassGen stays always on top of all other windows, the main menu is hidden and there is also no dock icon.

  1. Third you have the possibility to install PassGen as a shell command into "/usr/local/bin/passgen" for use on the command line. Install with the menu item "Install shell command..." (which requires admin authentication) and type "passgen --help" in a terminal for options.

More Information and Docs

Please refer to the online documentation in the SourceForge PassGen Wiki for more information.

Download

Copyright (c) 2015 by Alexander Groß starfury@lochsberg.net

Change Log

Update 2.3.4 - Changed the behavior of the backend (passgen.py) and adjustment of the main application. The backend (which can also be called from command line) has some new command line switches to adapt the backend for usage with MacPass. It's now possible to use the password generation parameter in MacPass for password creation. To use this feature, open the password generator window of MacPass, adjust the length of the password, turn on the custom switch and enter either "mnic" - for a mnemonic password - or "rand" - for a random password in the text field below. You can adjust the parameter by turning on the [A-Z] switch for using upper case characters, the [0-9] switch for using digits in password and the [#!?] switch for using special characters. After that click on the [Set Default] button. PassGen - if called from command line with the --macpass otpion - will get the appropriate settings now from MacPass preferences. You can adapt the behavior by using other options ( maybe --symbols-list="_.#", to use only a small set of special characters, or -e 80 to change the minimal entropy), all other settings needed will come from the PassGen prefernces file or must be give as an option. - To use PassGen as a Service for MacPass, create a Automator action, call "passgen --macpass" and then call the MacPass plugin manually, but be aware that this may be is a security problem, because the created password will be exchanged in plain text and an attacker may see it.

Source: README.md, updated 2018-12-13