All Projects → brannondorsey → Passgan

brannondorsey / Passgan

Licence: mit
A Deep Learning Approach for Password Guessing (https://arxiv.org/abs/1709.00440)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Passgan

Kaonashi
Wordlist, rules and masks from Kaonashi project (RootedCON 2019)
Stars: ✭ 353 (-49.86%)
Mutual labels:  password, password-strength, password-cracking
Python Scripts
Collection of Various Python Script's.💻
Stars: ✭ 195 (-72.3%)
Mutual labels:  password, password-strength
Password Strength
Angular UI library to illustrate and validate a password's strength with material design - Angular V9 supported
Stars: ✭ 186 (-73.58%)
Mutual labels:  password, password-strength
react-native-passmeter
Simple password strength meter for React Native.
Stars: ✭ 46 (-93.47%)
Mutual labels:  password, password-strength
Passwordstrengthbundle
Symfony Password strength and blacklisting validator bundle
Stars: ✭ 123 (-82.53%)
Mutual labels:  password, password-strength
React Password Strength
A password strength indicator field for use in React projects
Stars: ✭ 167 (-76.28%)
Mutual labels:  password, password-strength
password-list
Password lists with top passwords to optimize bruteforce attacks
Stars: ✭ 174 (-75.28%)
Mutual labels:  password, password-strength
keepassxc-pwned
Check your keepassxc database against previously breached haveibeenpwned passwords
Stars: ✭ 25 (-96.45%)
Mutual labels:  password, password-strength
checkforce.js
💪 A library that helps to perform tasks to test strength of passwords
Stars: ✭ 18 (-97.44%)
Mutual labels:  password, password-strength
vue-simple-password-meter
Vue Simple Password Meter is a simple password strength meter component written in vanilla js and extremly lightweight
Stars: ✭ 65 (-90.77%)
Mutual labels:  password, password-strength
Bopscrk
Tool to generate smart and powerful wordlists
Stars: ✭ 273 (-61.22%)
Mutual labels:  password, password-cracking
Android Complexify
An Android library which makes checking the quality of user's password a breeze.
Stars: ✭ 111 (-84.23%)
Mutual labels:  password, password-strength
Probable Wordlists
Version 2 is live! Wordlists sorted by probability originally created for password generation and testing - make sure your passwords aren't popular!
Stars: ✭ 7,312 (+938.64%)
Mutual labels:  password, password-strength
Cupp
The most common form of authentication is the combination of a username and a password or passphrase. If both match values stored within a locally stored table, the user is authenticated for a connection. Password strength is a measure of the difficulty involved in guessing or breaking the password through cryptographic techniques or library-based automated testing of alternate values.
Stars: ✭ 2,493 (+254.12%)
Mutual labels:  password, password-strength
jquery.pwstrength
A jQuery plugin to indicate the strength of passwords
Stars: ✭ 22 (-96.87%)
Mutual labels:  password, password-strength
Bewgor
Bull's Eye Wordlist Generator - Does your password rely on predictable patterns of accessible info?
Stars: ✭ 333 (-52.7%)
Mutual labels:  password, password-strength
Duplicut
Remove duplicates from MASSIVE wordlist, without sorting it (for dictionary-based password cracking)
Stars: ✭ 352 (-50%)
Mutual labels:  password, password-cracking
Awesome Gans
Awesome Generative Adversarial Networks with tensorflow
Stars: ✭ 585 (-16.9%)
Mutual labels:  gan
Ad examples
A collection of anomaly detection methods (iid/point-based, graph and time series) including active learning for anomaly detection/discovery, bayesian rule-mining, description for diversity/explanation/interpretability. Analysis of incorporating label feedback with ensemble and tree-based detectors. Includes adversarial attacks with Graph Convolutional Network.
Stars: ✭ 641 (-8.95%)
Mutual labels:  gan
Tensorflow Vae Gan Draw
A collection of generative methods implemented with TensorFlow (Deep Convolutional Generative Adversarial Networks (DCGAN), Variational Autoencoder (VAE) and DRAW: A Recurrent Neural Network For Image Generation).
Stars: ✭ 577 (-18.04%)
Mutual labels:  gan

PassGAN

This repository contains code for the PassGAN: A Deep Learning Approach for Password Guessing paper.

The model from PassGAN is taken from Improved Training of Wasserstein GANs and it is assumed that the authors of PassGAN used the improved_wgan_training tensorflow implementation in their work. For this reason, I have modified that reference implementation in this repository to make it easy to train (train.py) and sample (sample.py) from. This repo contributes:

  • A command-line interface
  • A pretrained PassGAN model trained on the RockYou dataset

Getting Started

# requires CUDA 8 to be pre-installed
pip install -r requirements.txt

Generating password samples

Use the pretrained model to generate 1,000,000 passwords, saving them to gen_passwords.txt.

python sample.py \
	--input-dir pretrained \
	--checkpoint pretrained/checkpoints/195000.ckpt \
	--output gen_passwords.txt \
	--batch-size 1024 \
	--num-samples 1000000

Training your own models

Training a model on a large dataset (100MB+) can take several hours on a GTX 1080.

# download the rockyou training data
# contains 80% of the full rockyou passwords (with repeats)
# that are 10 characters or less
curl -L -o data/train.txt https://github.com/brannondorsey/PassGAN/releases/download/data/rockyou-train.txt

# train for 200000 iterations, saving checkpoints every 5000
# uses the default hyperparameters from the paper
python train.py --output-dir output --training-data data/train.txt

You are encouraged to train using your own password leaks and datasets. Some great places to find those include:

Results

I've yet to do an exhaustive analysis of my attempt to reproduce the results from the PassGAN paper. However, using the pretrained rockyou model to generate 10⁸ password samples I was able to match 630,347 (23.97%) unique passwords in the test data, using a 80%/20% train/test split.

In general, I am somewhat surprised (and dissapointed) that the authors of PassGAN referenced prior work in the ML password generation domain but did not compare their results to that research. My initial experience with PassGAN leads me to believe that it would significantly underperform both the RNN and Markov-based approaches mentioned in that paper and I hope that it is not for this reason that the authors have chosen not to compare results.

Attribution and License

This code is released under an MIT License. You are free to use, modify, distribute, or sell it under those terms.

The majority of the credit for the code in this repository goes to @igul222 for his work on the improved_wgan_training. I've simply modularized his code a bit, added a command-line interface, and specialized it for the PassGAN paper.

The PassGAN research and paper was published by Briland Hitaj, Paolo Gasti, Giuseppe Ateniese, Fernando Perez-Cruz.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].