Python script to generate a card with 54 strong passwords by row, column or 3x3 grid
Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README
simple_grid.py
solved.py
sudoku_password_card.py

README

Sudoku-based password generator
Copyright (C) 2008-2011   Louis G. "Ted" Stern.  All rights reserved

Motivation:

Try running simple_grid.py.  It prints out 9 9-character strong passwords, each
with 2 symbols, 2 digits, 2 upper case and 3 lower case.  The passwords are
printed horizontally.

However, all you can get out of this is 9 strong passwords, or maybe 18 if you
use some of them backwards.  If you read down, some of the columns won't have
symbols or digits, or some columns will have too many.

I wanted to find a way to make the columns be strong passwords too.  Then I
noticed that this was the same kind of constraint you get in a solved
Sudoku puzzle.

To make this work, I use a simple preexisting sudoku solver to create
a random sudoku solution.  The one I work with comes from here:

	http://davidbau.com/downloads/sudoku.py
	(via http://davidbau.com/about/hacks.html )

You will have to download this file and put it in the same directory as
sudoku_password_card.py for it to work.

This generator prints out two boards adjacent to each other with 9 random
passwords substituted in for digits 0-8 in each row.

To see how you can use this to generate a solved puzzle, run solved.py.
Enter 'y' when you have seen enough solved boards.

Then generate 9 passwords, sorted into the following order.

Each 9-char password has 2 ascii upper case, 3 ascii lower case, 2 digits,
and 2 symbols.

Then use a solved sudoku puzzle to rearrange each password.

The resulting sudoku-permuted rows, columns and 3x3 cells are thus
all strong passwords with uppercase, lowercase, digits and symbols.

From one sudoku board you can pick
  rows & columns, forward & backward, 2 boards => 72 passwords
  cells, RD, RU, LD, LU on 2 boards => 72 passwords

Therefore, you can get 144 strong passwords from a two-board card.