Code Monkey home page Code Monkey logo

python-password's Introduction

Python Password

Code correctness

This project is my first desktop app - password manager. It's made with Python 3.7 and material design standard.

What's the program about?

Python Password is intended to safely store passwords. They are encrypted with two master passwords and saved locally. Master passwords could be randomly generated or set by user, so you can re-create them when they're gone for some reasons or you'd like to share your passwords with someone. Of course many users on the same PC will have separate data folders. When you would like to get any password it won't be prompted on the screen, but safely copied to clipboard with no risk that someone could view your password.

Passwords menu

Quick start guide

Passwords menu

Main screen of program is passwords menu. From here you can:

  • add passwords,
  • copy passwords,
  • delete passwords.

On the left side there will be displayed list of saved passwords. You can click on specific password to see context menu wth 3 options; "copy", "delete" and "nothing".

On the right side there are 4 sections.

  1. Adding password - to add password, simply enter it's alias and password itself. Then click button to add it.
  2. Removing password - you can delete password also from here. Simply provide it's alias and click button.
  3. Info - here you can see how many passwords there are in database.
  4. Refresh - click this button to refresh view, and fetch passwords from local database.

Settings menu

In this menu, you can:

  • change alpha password,
  • change beta password.

You can see in FAQ.md how do they work.

Settings with side menu

Info menu

On the left side, there are some basic information about version, author and 3rd party software.

On the right side you can see (of course clickable) links.

How to start using?

For download please look at latest release.

Context

Ideas what to add

Idea Added in version
Theme changing. v0.2.3
Many translations. v0.2.5
Clear cache 15 seconds after copy password. -
Login system. -
Ciphering database. -

You can find more information about project in:


If you want to help me improve this program, (report issues etc.) or just talk, please contact me via Discord: Anonymous©#7296, or use GitHub issues.

python-password's People

Contributors

anonymousx86 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

python-password's Issues

sqlite3.OperationalError: no such table: passwords

 Traceback (most recent call last):
   File "PyPassword.py", line 673, in <module>
     PyPassword().run()
   File "D:\Alt. Program Files x64\Python\Python37\lib\site-packages\kivy-1.11.1-py3.7-win-amd64.egg\kivy\app.py", line 854, in run
     self.dispatch('on_start')
   File "kivy\_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
   File "PyPassword.py", line 104, in on_start
     self.update_passwords_list()
   File "PyPassword.py", line 517, in update_passwords_list
     self._fetch_passwords()
   File "PyPassword.py", line 476, in _fetch_passwords
     q = gel_all_passwords()
   File "D:\Alt. Program Files x64\Python\Python37\lib\site-packages\python_password-0.2.5-py3.7.egg\python_password\utils\database.py", line 59, in gel_all_passwords
     return query('SELECT `name`, `password` FROM `passwords`;')
   File "D:\Alt. Program Files x64\Python\Python37\lib\site-packages\python_password-0.2.5-py3.7.egg\python_password\utils\database.py", line 30, in query
     my_cursor.execute(q_input, q_args)
 sqlite3.OperationalError: no such table: passwords

Why am I facing this error? Any work-around for this?
Please look into the matter.

[BUG]

Traceback (most recent call last):
File "C:\Users\Admin\Downloads\Python-Password-master\Python-Password-master\python_password\PyManager.py", line 21, in
from python_password.exceptions.validation import *
ModuleNotFoundError: No module named 'python_password'

[BUG] Hard to remove passwords with special characters in aliases

Description of the bug
It is possible that the alias of the password has some weird characters that makes the password hard to remove from the database.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new entry with an alias like a tab at the end.
  2. The tab is displayed as a crossed box. And you may not remember which character it is later on.

Expected behavior
I think you should make an extra safety step and check that passwords are only a-z, A-Z and 0-9 characters or something like that, to make the passwords easy to remove.

Screenshots
bug

Version
v0.2.2

Use context managers instead of manaing resources

Whenever you find yourself manually handling resources you should first think 'Is there a context manager for this?'.

Context managers handle the gathering and releasing of resources for you.
This link explain them fairly well: https://jeffknupp.com/blog/2016/03/07/python-with-context-managers/

There are a few places you have used a context manager within the script, which is great! However, there are some places you haven't used them and haven't closed the file!

You can also use a context manager for sqlite3 cursors too. These give the added benefit of automatically committing or rolling back transactions.
You can read about them here: https://docs.python.org/2/library/sqlite3.html#using-the-connection-as-a-context-manager

Hide passwords while typing

The library getpass that ships with python that can be used when asking a user to enter a password. This hides the characters that they type while entering the password.

To use it, first import the module and then replace and input() calls with getpass() instead. Like so:

from getpass import getpass
pswd = getpass('Password:')

No Module named 'python_passsword'

When I run the program with the command python PyPassword.py, it gives an error saying No Module named python_password. I am using vscode, which shouldn't make a difference.

Steps to reproduce the behavior:

  1. Click on save and run.
  2. Or click on save and then put in the terminal, python PyPassword.py

I had expected to see the password manager.

Screenshots
image

Version
v'0.2.5'

Simpler header() function

The header() function could be shortened to this:

dashes = '-' * (len(Program.name) + len(Program.version) + 10) + '\n'
prog_info = f'+++ {Program.name} v{Program.version} +++\n'
h_text = dashes + prog_info + dashes
return h_text

This makes use of string repetition (*) instead of using loops.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.