domingo, 12 de febrero de 2017

passseder - A new way to generate passwords


PassSeeder 1.0

About

passseeder is a language to generate passwords beginning from a set of alphanumeric list words (seeds) and a string of instructions (generator). To build the generator string there is a pre-defined set of instructions and a constrained range of values for parameters. We will call core word to each word in seeds.

Next, it is shown the syntax to build the generator string by using BNF:

generator = L+num + (M) + core
core = J+symb + (T+num) + W+id + core

Where...
  • L is to limit the length of the password to generate, defined by num.
  • num is a natural number between 1 (included) to infinity.
  • M is for mix in a loop fashion throughout the core words.
  • core is a sequence that defines how to traverse each core word.
  • J is the way to jump characters in a core word, defined by symb.
  • T is the way to take a certain number of character in each jump, defined by num.
  • W represents the inclusion of a core words, identify by id.
  • id is the identifier of a core word, which is a natural number.
symb could be:
  • 1...infinity: jumping of 1, 2, 3, ..., infinity.
  • f: Jumps by following Fibonacci sequence.
  • a: arithmetic progression.
  • g: geometric progression.

Example

*********************************************
****INPUTS***********************************
*** seeds    : hello,world,1234567890,password
*** generator: L16MJ2W1J2W2J2W3J2W4
*********************************************
*** L16     : Length of 16 characters.
*** M       : Mixed (iterate) among core words in seeds.
*** J2 W1   : Pick one character each 2 ones of word 1 (hello).
*** J2 W2   : Pick one character each 2 ones of word 2 (world).
*** J2 W3   : Pick one character each 2 ones of word 3 (1234567890).
*** J2 W4   : Pick one character each 2 ones of word 4 (password).
*********************************************
****OUTPUTS**********************************
** new password: eo2all4shw6olr8d
**********************************

Another example:

  • Seeds    : hello,world,1234567890,password
  • Generator: L32MJ2W1JgW2J1W3JaW4
  • New password: eo2slr3whd4rll5poo6ser7wld8rhl9p

License

passseeder, password generator.
Copyright (C) 2017 Sebastián A. Moraga Garrido.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see http://www.gnu.org/licenses/.

NOTE: I have implemented both a web and a nodejs versions of this algorithm. If you want it, please, leave a comment in this post.

Try it bellow! Use inputs from examples above! :-)

Inputs: Seeds:

Generator:

Password: ****************
Error: ****************
Copyright (C) 2017 Sebastián A. Moraga Garrido - GNU-GPL

No hay comentarios.: