Skip to main content
added 5 characters in body
Source Link

Outside of professional carrier, I often stumble upon a need for a unique password for exp. for local database, game server, or on tons of, not so important, websites.

I came up with an idea to write a deterministic password generator for myself, which takes a tuple:

  • master password
  • header for exp. just a word "pinterest" and generates a password of specified length, always the same

and generates a password of specified length, always the same.

I realise that this idea may not be the most secure and etc. But please focus on proper implementation, not the concept.

The implementation:

  1. Process master password and header using a password hash function like balloon hashing or argon2 (I believe that it adds some computational effort and makes it harder to obtain the master password from a few generated passwords)
  2. Use the result of 1. as a seed for Fortuna DRNG to generate the password

Are my assumptions about point 1. correct? Would you suggest some more operations?

How should I process master password and header? Can I simply concatenate them and hash, or XOR their hashes, or compose?

Outside of professional carrier, I often stumble upon a need for a unique password for exp. for local database, game server, or on tons of, not so important, websites.

I came up with an idea to write a deterministic password generator for myself, which takes a tuple:

  • master password
  • header for exp. just a word "pinterest" and generates a password of specified length, always the same

I realise that this idea may not be the most secure and etc. But please focus on proper implementation, not the concept.

The implementation:

  1. Process master password and header using a password hash function like balloon hashing or argon2 (I believe that it adds some computational effort and makes it harder to obtain the master password from a few generated passwords)
  2. Use the result of 1. as a seed for Fortuna DRNG to generate the password

Are my assumptions about point 1. correct? Would you suggest some more operations?

How should I process master password and header? Can I simply concatenate them and hash, or XOR their hashes, or compose?

Outside of professional carrier, I often stumble upon a need for a unique password for exp. for local database, game server, or on tons of, not so important, websites.

I came up with an idea to write a deterministic password generator for myself, which takes a tuple:

  • master password
  • header for exp. just a word "pinterest"

and generates a password of specified length, always the same.

I realise that this idea may not be the most secure and etc. But please focus on proper implementation, not the concept.

The implementation:

  1. Process master password and header using a password hash function like balloon hashing or argon2 (I believe that it adds some computational effort and makes it harder to obtain the master password from a few generated passwords)
  2. Use the result of 1. as a seed for Fortuna DRNG to generate the password

Are my assumptions about point 1. correct? Would you suggest some more operations?

How should I process master password and header? Can I simply concatenate them and hash, or XOR their hashes, or compose?

Source Link

deterministic password generator idea

Outside of professional carrier, I often stumble upon a need for a unique password for exp. for local database, game server, or on tons of, not so important, websites.

I came up with an idea to write a deterministic password generator for myself, which takes a tuple:

  • master password
  • header for exp. just a word "pinterest" and generates a password of specified length, always the same

I realise that this idea may not be the most secure and etc. But please focus on proper implementation, not the concept.

The implementation:

  1. Process master password and header using a password hash function like balloon hashing or argon2 (I believe that it adds some computational effort and makes it harder to obtain the master password from a few generated passwords)
  2. Use the result of 1. as a seed for Fortuna DRNG to generate the password

Are my assumptions about point 1. correct? Would you suggest some more operations?

How should I process master password and header? Can I simply concatenate them and hash, or XOR their hashes, or compose?