Skip to content

DerSchinken/PasswordCardGenerator

Repository files navigation

Password Card Generator

Docs are coming soon!
Right now this has to do it:

from PasswordCardGenerator import PasswordCard, save_card, load_card

keyword = "YourKeyword"

# Create a password card
card1 = PasswordCard(keyword_length=len(keyword))
# You can also just pass in the keyword
# You can also specify how long a segment should be (default is 3)
# PasswordCard(keyword_length=len(keyword), segment_length=5)

# incase you dont know what i mean with segment:
# |  1 | lfx  | ...
#        ^^^ this is an segment

# Print the password card
print(card1)
# Get the password for keyword
print(card1.get_password(keyword))

# save the password card as an image
card1.save_png("test_card.png")
# save the password card as plain text
card1.save_text("test_card.txt")
# You can also save the card and load it
save_card(card1, "test.card")
x = load_card("test.card")

# You can get specific items
row = 2
column = 5
print(card1[row, column])

# You can get the raw data
print(card1.raw)

There is also a GUI, but it is still in progress so don't expect anything
to use the gui type

python -m "PasswordCardGenerator.GUI"

or

python3 -m "PasswordCardGenerator.GUI"

How it works

You need a Keyword for a Password card to work!
To get the password you take one character at a time.

To get the row: Look in what row your character appears
To get the column: Look at what position your character is.

Then you take what is in [column] in [row] and put it on the end of the password
Do that for every character in your keyword, and you got yourself a secure password

Example:

|    | ABC   | DEF   | GHI   | JKL   | MNO   | PQR   | STU   | VWX   | ZY   | .   |
|----|-------|-------|-------|-------|-------|-------|-------|-------|------|-----|
|  1 | 3T,   | 2C8   | 2lk   | ZMJ   | br]   | sPj   | ,X1   | ZMq   | IAp  | LPG |
|  2 | h2R   | ?XH   | wng   | UkQ   | 7}g   | }'j   | TBg   | hC3   | Hub  | ?pA |
|  3 | GSI   | r0z   | rtm   | n9N   | OID   | B6T   | noV   | P9n   | g,k  | ZRU |
|  4 | wVc   | 1'?   | K6N   | kc%   | EY}   | ]8K   | ImI   | '[Z   | Mv;  | cd1 |
|  5 | nz#   | h}a   | pX6   | ?1;   | D89   | F39   | rDU   | 3l8   | n7T  | 9Qq |
|  6 | U4x   | H[j   | ?Fe   | tJi   | Q.d   | T!6   | .rx   | _'s   | YVh  | q_' |
|  7 | Jyi   | hyN   | 73{   | {73   | Wez   | %{C   | IJ}   | QVm   | ipj  | YK, |
|  8 | LlX   | fYO   | YUg   | !ne   | 1n{   | H{\   | 9_F   | !?!   | rbx  | b#a |

Our keyword is: VerySafe

So we look in what row does V, the first letter, appear in -> row VWX
Now we look at what position the V, the first letter, is -> 1

So we append the 3 characters that are in row VWX at 1 (ZMq)
Our password right now is: ZMq

and repeat!

so we look in what row e, the second letter, does appear in -> row DEF
now we look at what position the e, the second letter, is -> 2

so we append the 3 characters that are in row DEF at 2 (?XH)
Our password right now is: ZMq?XH
...
...
Our password right now is: ZMq?XHB6TMv;rDUU4xhyNfYO