I appreciate your attempt to make password solutions for other people, but after a cursory glance at the code, I can see that you are using sha512 to hash passwords. This is easily brute-forcable. To understand why, google "password hash". Dont make tools for other people if you dont understand the security implications of the decisions that you make. I would hesitate writing ANY security related code at all and would rather leave it to people with far more experience than I have like tptacek or cperciva.