I was thinking of using different and independent password for different websites, but not storing them in some password manager so I don't need to backup the passwords. I thought I could use some cryptographic technique to do this, and I come up with a script that do the following:

* User input a master password into the script.
* User input a name, or domain - whatsoever, into the script as `site name`.
* The script use [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) with HMAC (`hashlib.pbkdf2_hmac` in Python) to generate a key, using the master password as the password input and `site name` as salt, `250000` as the number of iterations and 8 bytes as the key length.

    Doing this currently take around 1 second on my computer.

* The resulting key is treated as a number, and is converted into base 75. Each resulting digit is then mapped to a character using the following array:

        0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz

* The script output the resulting string and that string is used as a password for that site.

There's three goal I want to achieve with this script:

1. Given the same master password and same `site name`, the script should output the same string and it is a good secure password to be used on website.
2. Given only the generated password and `site name`, it should be impossible for an attacker to compute the master password (At least it should take a long time if the master password is strong).
3. Given only the generated password and `site name`, it should also be impossible for an attacker to compute password for other `site name`.

My question is: is this a secure password generator? The master password I used is basically just like a password that this script will output.

[My implementation of this can be found here](https://github.com/micromaomao/ecbpass/blob/master/ecbpass.py).