1
0
Fork 0
mirror of https://github.com/Luzifer/password.git synced 2024-11-08 17:30:10 +00:00
Fast and secure password generator and library
Find a file
2017-09-22 17:39:46 +02:00
alfred-workflow Rebuilt workflow for better design and auto-update 2017-09-22 17:38:08 +02:00
frontend Re-generate assets 2017-09-22 17:39:07 +02:00
lib Fix: Blacklisted characters were not excluded from passwords 2015-05-10 19:05:34 +02:00
vendor/github.com Vendor dependencies 2017-09-22 15:28:56 +02:00
.gitignore Rebuilt workflow for better design and auto-update 2017-09-22 17:38:08 +02:00
.gitmodules Rebuilt workflow for better design and auto-update 2017-09-22 17:38:08 +02:00
.repo-runner.yaml Include workflow building into build process 2017-09-22 16:25:25 +02:00
.travis.yml Fix: Travis build broken through different tools 2017-09-22 15:50:26 +02:00
bindata.go Re-generate assets 2017-09-22 17:39:07 +02:00
cmdGet.go Replaced codegangsta/cli by spf13/cobra 2015-05-29 20:20:04 +02:00
cmdServe.go Replaced codegangsta/cli by spf13/cobra 2015-05-29 20:20:04 +02:00
cmdVersion.go Replaced codegangsta/cli by spf13/cobra 2015-05-29 20:20:04 +02:00
Dockerfile Update Dockerfile to golang:alpine template 2017-09-22 15:27:18 +02:00
flags.go Replaced codegangsta/cli by spf13/cobra 2015-05-29 20:20:04 +02:00
Gopkg.lock Vendor dependencies 2017-09-22 15:28:56 +02:00
Gopkg.toml Vendor dependencies 2017-09-22 15:28:56 +02:00
History.md prepare release v1.6.0 2017-09-22 17:39:46 +02:00
LICENSE Replace Apache license stub with proper license 2017-09-22 15:32:49 +02:00
main.go Remove static versioning 2017-09-22 15:29:21 +02:00
Makefile Rebuilt workflow for better design and auto-update 2017-09-22 17:38:08 +02:00
README.md Add buttons to README 2017-09-22 15:34:55 +02:00

Go Report Card

Luzifer / password

This project is a rewrite of my former password generator written in Python. The intention is to provide a fast and secure way to generate one or more passwords using a CLI tool, a HTTPs page or a HTTPs API.

Usage

Via Web

My service Secure Password is powered by this app and will provide you with secure passwords.

Via CLI

  1. Download the compiled binary from Github releases

  2. Generate your password:

    # ./password get -h
    NAME:
      get - generate and return a secure random password
    
    USAGE:
      command get [command options] [arguments...]
    
    OPTIONS:
      --length, -l "20"	length of the generated password
      --special, -s	use special characters in your password
    
    # ./password get
    Vzupi4IaPbXmSQEX9A4e
    
    # ./password get -l 32 -s
    }d.sks(4J$2G]x52=k)WAN{M68LxEg}%
    

Via API

  • /v1/getPassword - Retrieve a password from the API
    • length=20 - Specify the length of the password to generate
    • special=false - Set to true to enable special characters

Self-Hosted

  1. Download the compiled binary from Github releases

  2. Run the API server:

    # ./password serve -h
    NAME:
      serve - start an API server to request passwords
    
    USAGE:
      command serve [command options] [arguments...]
    
    OPTIONS:
      --port "3000"	port to listen on
    
  3. Request your password using http://localhost:3000/v1/getPassword?length=20&special=true

Hosted

# curl https://pwd.luzifer.io/v1/getPassword?length=20&special=true
0M4L-1[lT:@2&7,p,o-;

Benchmark / Test

Tests and benchmark are run by Travis CI at every push to this repository:

Build Status

# go test -bench .
PASS
BenchmarkGeneratePasswords8Char           20000       74875 ns/op
BenchmarkGeneratePasswords8CharSpecial    10000      108451 ns/op
BenchmarkGeneratePasswords16Char          10000      135059 ns/op
BenchmarkGeneratePasswords16CharSpecial   10000      142958 ns/op
BenchmarkGeneratePasswords32Char           5000      307994 ns/op
BenchmarkGeneratePasswords32CharSpecial    5000      284031 ns/op
BenchmarkGeneratePasswords128Char           300     6721034 ns/op
BenchmarkGeneratePasswords128CharSpecial    500     3244446 ns/op
ok  	github.com/Luzifer/password/lib	13.764s