Skip to content

This repo is a mirror of the project with the same name on GitLab

License

Notifications You must be signed in to change notification settings

KorvinSilver/d3ta-pyqt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

D3TA (Dear Diary, Don't Tell Anyone)

An encrypted diary program

Store your diary entries encrypted with this program.

Requirements:

  • Python 3.6 or newer
  • bcrypt
  • pycrypto
  • urwid 2.x
  • pyqt5

The program stores the data in a SQLite3 database file. It may have any name and extension you provide, although I'd recommend using the .sqlite3 extension. The GUI actually saves each new file with it.

Each entry is stored in a table with three values, one date, one hint and one text with types of datetime, tinytext and longtext, respectively. The date is the date and time when the entry was created and the hint is an optional user input. The program shows the name of an entry as the combination of the datetime and the hint.

The database itself is not password protected, but each text entry is encrypted with PyCrypto using the AES algorithm and hashed with SHA-256 for storage.

A salted hash generated from the password using bcrypt is also stored in the database, in another table.

The program allows you to create new databases, change their passwords, create new entries, save and modify entries, delete entries and empty databases. These functions are accessible both from the command line and from the GUI.

The CLI uses urwid, the GUI uses PyQt5, and the main window and license windows were created with Qt Designer.

This project is licensed under the GNU General Public License version 3.
PyQt5 is licensed under the GNU General Public License version 3.
PyCrypto is licensed under its own terms.
bcrypt is licensed under the Apache License version 2.0.

Command line usage:

usage: cli.py [-h] [--change-password | --new-database] database

D3TA (Dear Diary, Don't Tell Anyone)

positional arguments:
  database           [path +] filename to your database

optional arguments:
  -h, --help         show this help message and exit
  -l, --license      show license boilerplate
  --new-database
  --change-password

Note: urwid has mouse support, so mouse clicks are registered.

GUI usage:

Menu items:

  • File | New Diary
    • create new diary
    • keyboard shortcut: Ctrl+N
  • File | Open Diary
    • open diary
    • keyboard shortcut: Ctrl+O
  • File | New Entry
    • create new entry in diary
    • keyboard shortcut: F2
  • File | Save
    • save selected entry
    • keyboard shortcut: Ctrl+S
  • File | Delete
    • delete selected entry
    • keyboard shortcut: Ctrl+Del
  • File | Change Password
    • change diary password
    • keyboard shortcut: Ctrl+F8
  • File | Exit
    • quit program
    • keyboard shortcut: Ctrl+Q
  • Help | License
    • show D3TA license
  • Help | About D3TA
    • open D3TA website
  • Help | About PyQt5
    • open PyQt5 documentation website

Buttons:

  • New
    • create new diary
  • Open
    • open diary
  • Delete
    • delete selected entry
  • Delete All
    • delete all entries
  • New Entry
    • create new entry in diary
  • Save
    • save selected entry
  • Close
    • quit program

CLI Screenshots

CLI screenshot 1 CLI screenshot 2
CLI screenshot 3

GUI Screenshots

GUI screenshot 3
GUI screenshot 2
GUI screenshot 3

About

This repo is a mirror of the project with the same name on GitLab

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages