Encrypted memories

Related tags

Cryptography Diary
Overview

Diary - Encrypted memories Latest version

Diary is a TUI program written in Rust for GNU/Linux / *BSD / Android (It probably works on other platforms too, but who cares) that helps you write a digital journal from the comfort of a TUI. It ecrypts both text and file data, and can decrypt and build a rich HTML representation of your diary when required.

Install

cargo install diary

Usage

USAGE:
    diary [FLAGS] [OPTIONS]

FLAGS:
    -g, --generate-page    Assert this flag if you want the diary to built into an html file stored at $TEMPDIR.
    -h, --help             Prints help information
    -V, --version          Prints version information

OPTIONS:
    -d, --database <database>    This is the location of the database file. [default: .database]

To make an entry

  1. Run the program and enter your password.
  2. On the first screen, enter the day's diary entry. The date and day will be added by Diary.
  3. Esc saves the entry and exits. Ctrl+c exits the application without saving. Alt+n takes you to the next screen for adding files.
  4. To add files, simply type in the file's location. After each file, hit Alt+n. If the file doesn't exist, you get an alert.
  5. Esc to save and exit, and Ctrl+c to exit without saving.

To view the diary in HTML

  1. Run the program with the -g (--generate-page) flag.
  2. Enter your password.
  3. "index.html" and other required files are now saved to /tmp. Open this file with a browser. firefox /tmp/index.html

Important notes

  1. Every entry (text and file data) is encrypted with AES-128 encrytpion. It is therefore practically impossible to access your diary without the password. So do NOT forget it.
  2. Remember to clean up the decrypted files in /tmp if necessary. rm -rf /tmp/*
  3. Make sure you're writing to the right database. By default, diary writes to ./.database, but a custom database may be specified with the -d flag.

Features

  1. AES-128 encryption for text and file data.
  2. TUI interface without sacrificing functionality or usability
  3. Decrypts the whole database only when required (-g flag), and into rich HTML5.

Running

del.mp4
You might also like...
A simple key-value store with a log-structured, append-only storage architecture where data is encrypted with AES GCM.

akvdb A simple key-value store with a log-structured, append-only storage architecture where data is encrypted with AES GCM. Modified from the actionk

Koofr Vault is an open-source, client-side encrypted folder for your Koofr cloud storage offering an extra layer of security for your most sensitive files.

Koofr Vault https://vault.koofr.net Koofr Vault is an open-source, client-side encrypted folder for your Koofr cloud storage offering an extra layer o

Bijou is a tiny yet fast encrypted file system.

Bijou ✨💎✨ Bijou (['bi:ʒu], French for "jewel") is a tiny yet fast encrypted filesystem, built upon RocksDB. Bijou provides a FUSE interface, as well

rustic_core - library for fast, encrypted, deduplicated backups that powers rustic-rs
rustic_core - library for fast, encrypted, deduplicated backups that powers rustic-rs

Library for fast, encrypted, and deduplicated backups About This library is powering rustic-rs. A backup tool that provides fast, encrypted, deduplica

a handy utility to work with encrypted DMGs

edmgutil edmgutil is a simple wrapper utility to hdiutil to help you work with disposable, encrypted DMGs. It can decompress an encrypted ZIP into a n

An application for creating encrypted vaults for the GNOME desktop.
An application for creating encrypted vaults for the GNOME desktop.

Vaults An application for creating encrypted vaults for the GNOME desktop. It currently uses gocryptfs and CryFS for encryption. Please always keep a

age-encrypted secrets for NixOS; drop-in replacement for agenix

ragenix ragenix provides age-encrypted secrets for NixOS systems which live in the Nix store and are decrypted on system activation. Using ragenix to

Trustworthy encrypted command line authenticator app compatible with multiple backups.
Trustworthy encrypted command line authenticator app compatible with multiple backups.

cotp - command line totp authenticator I believe that security is of paramount importance, especially in this digital world. I created cotp because I

Scalable and encrypted embedded database with 3-tier caching

Infinitree is a versioned, embedded database that uses uniform, encrypted blobs to store data.

An end-to-end encrypted, anonymous IP-hiding, decentralized, audio/video/file sharing/offline messaging multi-device platform built for both communications and application security and performance.

An end-to-end encrypted, anonymous IP-hiding, decentralized, audio/video/file sharing/offline messaging multi-device platform built for both communications and application security and performance.

An encrypted multi client messaging system written in pure Rust

🚩 Preamble This is a pure Rust multi-client encrypted messaging system, also known as Edode's Secured Messaging System. It is an end-to-end(s) commun

Dione is an anonymize and encrypted messaging system build on top on a peer to peer layer.

Secure and Anonymous Messaging WARNING: Currently Dione is not ready to be used nor does it fulfill its goal of being an anonymous messenger. In order

NymDrive is a complete, end-to-end encrypted file syncing daemon that runs over the Nym network.

NymDrive NymDrive is a complete, end-to-end encrypted file syncing daemon that runs over the Nym network. Features Active file monitoring of changes i

Embedded Distributed Encrypted Database (Research).

EDED Embedded Distributed Encrypted Database. Research projects to support ESSE. WIP Distributed design features Adapt to personal distributed usecase

Rustic - a backup tool that provides fast, encrypted, deduplicated backups

Rustic is a backup tool that provides fast, encrypted, deduplicated backups. It can read the restic repo format desribed in the design document and writes a compatible repo format which can also be read by restic.

An open source desktop wallet for nano and banano with end-to-end encrypted, on chain messaging using the dagchat protocol.
An open source desktop wallet for nano and banano with end-to-end encrypted, on chain messaging using the dagchat protocol.

An open source wallet with end-to-end encrypted, on chain messaging for nano and banano using the dagchat protocol.

Smarter brute-force password searching for PKZIP encrypted files

Zip Blitz Motivation This program was created for a very specfic problem I had. I had a large encrypted zip file that I lost/forgot the password for.

An HTTP proxy for assets (mainly images) to route requests through an always-encrypted connection.

camo-rs camo-rs is a frontend-compatible Rust-re-implementation of the now archived NodeJS-based atmos/camo - an HTTP proxy for assets (mainly images)

Program to determine the password of an encrypted ZIP file via dictionary attack.

zip-dict-attack Program to determine the password of an encrypted ZIP file via dictionary attack. Inspired by this article. Usage Cargo is used to bui

Comments
  • Consider using GitHub releases

    Consider using GitHub releases

    It would be great to see this project use GitHub releases to track milestones in the project, or at the very least git tags, something that stays in sync with cargo's version.

    opened by lmartinez-mirror 2
  • HTML generation not working?

    HTML generation not working?

    First of all, really nice project, it's very useful to have a TUI for this. I have an issue with the HTML generation. When I try to generate it with diary -g and password, all I get is the template with Null instead of the entries.

    <html>
    <meta charset="UTF-8">
        <head><style>
    .header {
      padding: 5px;
      border-radius: 20px; 
      text-align: center;
      background: #1abc9c;
      color: #D3FFED;
      font-size: 35px;
      box-shadow: 0px 0px 30px 1px #092E13;
      transition: 0.3s;
    }
    .header:hover {
      color: white;
      box-shadow: 0px 0px 60px 1px #092E13;
    }
    .entries {
      padding: 30px;
      border-radius: 20px;
      text-align: center;
      background: #2BA67B;
      color: #D3FFED;
      font-size: 25px;
      box-shadow: 0px 0px 30px 1px #092E13;
      margin: 3%;
      transition: 0.3s;
    }
    .entries:hover { 
      color: white;
      box-shadow: 0px 0px 60px 1px #092E13;
    }
    .image {
      display: block;
      border: 5px;
      border-color: #D3FFED;
      border-style: solid;
      border-radius: 20px;
      margin-left: auto;
      margin-right: auto;
      width: 99%;
      box-shadow: 0px 0px 30px 1px #092E13;
      transition: 0.3s;
    }
    .image:hover {
      border-color: white;
      box-shadow: 0px 0px 60px 1px #092E13;
    }
    .downloader {
      border: 5px;
      padding: 10px;
      color: #D3FFED;
      border-style: solid;
      border-color: #D3FFED;
      border-radius: 20px;
      margin-right: 200px;
      margin-left: 200px;
      transition: 0.3s;
      box-shadow: 0px 0px 30px 1px #092E13;
    }
    .downloader:hover {
      color: white;
      border-color: white;
      margin-left: 190px;
      margin-right: 190px;
      box-shadow: 0px 0px 60px 1px #092E13;
    }
    audio {
      border: 5px;
      background-color: #D3FFED;
      border-style: solid;
      border-radius: 20px;
      border-color: #D3FFED;
      box-shadow: 0px 0px 30px 1px #092E13;
      width: 50%;
      transition: 0.3s;
    }
    audio:hover{
      border-color: white;
      width: 52%;
      box-shadow: 0px 0px 60px 1px #092E13;
    }
    body {
      background-color: #175942;
    }
    </style><body><div class="header">
            <h2>My Diary<h2>
    </div> <br><br><div class="entries"><br> <h1><b> Tue, 2nd November, 2021 </b></h1> <br> Null <br><br><br><br></div><br><div class="entries"><br> <h1><b> Tue, 2nd November, 2021 </b></h1> <br> Null <br><br><br><br></div><br></body></html>
    

    I'll try to see if there's an error on my end. Just wanted to let you know.

    question 
    opened by ignition-ctrl 1
Releases(0.1.2)
Owner
Arun Sojan Parolikkal
Arun Sojan Parolikkal
An application for creating encrypted vaults for the GNOME desktop.

Vaults An application for creating encrypted vaults for the GNOME desktop. It currently uses gocryptfs and CryFS for encryption. Please always keep a

Martin Pobaschnig 51 Dec 17, 2022
age-encrypted secrets for NixOS; drop-in replacement for agenix

ragenix ragenix provides age-encrypted secrets for NixOS systems which live in the Nix store and are decrypted on system activation. Using ragenix to

YAXI 91 Jan 8, 2023
Trustworthy encrypted command line authenticator app compatible with multiple backups.

cotp - command line totp authenticator I believe that security is of paramount importance, especially in this digital world. I created cotp because I

Reply 71 Dec 30, 2022
An encrypted multi client messaging system written in pure Rust

?? Preamble This is a pure Rust multi-client encrypted messaging system, also known as Edode's Secured Messaging System. It is an end-to-end(s) commun

Edode 3 Sep 16, 2022
Dione is an anonymize and encrypted messaging system build on top on a peer to peer layer.

Secure and Anonymous Messaging WARNING: Currently Dione is not ready to be used nor does it fulfill its goal of being an anonymous messenger. In order

Dione 41 Jan 5, 2023
NymDrive is a complete, end-to-end encrypted file syncing daemon that runs over the Nym network.

NymDrive NymDrive is a complete, end-to-end encrypted file syncing daemon that runs over the Nym network. Features Active file monitoring of changes i

Hans Bricks 16 Jul 12, 2022
An open source desktop wallet for nano and banano with end-to-end encrypted, on chain messaging using the dagchat protocol.

An open source wallet with end-to-end encrypted, on chain messaging for nano and banano using the dagchat protocol.

derfarctor 22 Nov 6, 2022
Smarter brute-force password searching for PKZIP encrypted files

Zip Blitz Motivation This program was created for a very specfic problem I had. I had a large encrypted zip file that I lost/forgot the password for.

Michael 4 Jul 29, 2022
An HTTP proxy for assets (mainly images) to route requests through an always-encrypted connection.

camo-rs camo-rs is a frontend-compatible Rust-re-implementation of the now archived NodeJS-based atmos/camo - an HTTP proxy for assets (mainly images)

Dennis Schubert 7 Dec 8, 2022
Program to determine the password of an encrypted ZIP file via dictionary attack.

zip-dict-attack Program to determine the password of an encrypted ZIP file via dictionary attack. Inspired by this article. Usage Cargo is used to bui

null 2 Oct 8, 2022