GithubHelp home page GithubHelp logo

lousydropout / password-manager Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 2.56 MB

Home Page: https://blockchainkeyvault.com

License: GNU General Public License v3.0

JavaScript 29.91% Shell 0.96% TypeScript 46.73% Rust 22.39%

password-manager's Introduction

Password Manager

Password Manager is a blockchain-based password manager. This means that your data are secured by blockchain and cyptographic means rather than by some third party's good will.

Further, a blockchain-based password manager is also distributed and decentralized. You don't need to worry about some service's server crashing preventing you from accessing your Netflix credentials :)

A few details

Introduction

Password Manager is a simple password manager deployed on Astar's Shibuya network.

Note: Only the encrypted version of your username/passwords/url are stored on-chain. So, while your encrypted data are public, your secrets remain private.

How does it work

Password Manager uses symmetric encryption (AES with CBC mode) with a user-determined master password or passphrase used as the secret key under-the-hood.

In particular, for this project, the data we care to store is, in essence,

{
   "url": <url>,
   "username": <username>,
   "password": <password>,
   "description": <description>
}

So, when you tell the frontend to store a new url/username/password/description combination, it encrypts the JSON string using your master password and then sends the encrypted JSON string to the smart contract for storage.

Similarly, when you wish to decrypt the data, the encrypted JSON string is retrieved from the smart contract and then decrypted on the frontend.

As such, no body can access your data unless they have your master password.

How to deploy and access the dapp locally

  1. Rename .env.local.example as .env.local:
    mv frontend/.env.local.example frontend/.env.local
  2. cd into contracts/ and run substrate-nodes locally (keep this running):
    cd contracts/
    pnpm run node
  3. Open a 2nd terminal to build and deploy (locally) the smart contract:
    cd contracts
    pnpm run build
    pnpm run deploy
  4. Open a 3rd terminal for the frontend:
    cd frontend
    pnpm install
    pnpm run dev
  5. A link should appear, likely http://localhost:3000. Open it up in your favorite web browser (one with a polkadot wallet extension installed).

Future developments

There are 2 main extensions I wish to make in the future:

  1. Create chrome/firefox extensions for this dapp so that it can work as a full-fledge password manager that we're all familiar with.
  2. Generalize a few features so that password manager can also act as a decentralized secrets/credentials/key manager.

Acknowledgement

This repo was forked from scio-labs/inkathon, a boilerplate repo that made developing and deploying ink!-based dapps incredibly easy!

password-manager's People

Contributors

lousydropout avatar

Watchers

 avatar

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.