Giter Site home page Giter Site logo

flashpaper's Introduction

FlashPaper

A one-time encrypted zero-knowledge password/secret sharing application focused on simplicity and security. No database or complicated set-up required.

Demo

https://flashpaper.io

Picture of Main Page

Requirements

  • PHP 5.4
  • Web server
  • Linux
  • OpenSSL 1.0.1e

Installation

Copy contents of this repository to document root of web server

To increase security, disable access logging in your web server's configuration

Summary Of How It Works

Submitting Secret

  • Random 32-character password is created
  • Submitted text is encrypted with password
  • Password is hashed via SHA512
  • File created in secrets directory. Name of file is the SHA512 of the random password
  • Encrypted version of submitted text is stored inside of created file
  • Password is Base64 encoded
  • Retrieval URL is created by appending Base64 version of password to end
    • https://flashpaper.io/?k=1a2b3c4d5a6b7c8d9a0b1c2d3a4b5c6d$

Retrieving Secret

  • Base64 portion of URL is stripped from URL
  • Decode Base64 string to get the decryption password
  • Generate SHA512 of the password
  • Look for file in secrets that is named the SHA512 that we just generated
  • Get text from the file that we found and decrypt it with the password
  • Return the decrypted secret text to user
  • Delete the file

Automating Requests With curl

To suppress the HTML and CSS output so that you just have plain-text results, you'll need to include the 'nostyle' argument in the POST data of each request.

Get self-destructing link

curl -s -X POST -d "nostyle=true&secret=**BASE64 SECRET HERE**" https://flashpaper.io

Retrieve secret text from link

curl -s -X POST -d "nostyle=true" https://flashpaper.io/?k=1a2b3c4d5a6b7c8d9a0b1c2d3a4b5c6d$

โ— When generating a self-destructing link; the 'secret' variable must be in Base64 encoded format. There are some built-in checks to validate that you haven't forgotten this, but they will not work 100% of the time. If you fail to properly Base64 encode your secret before submission and manage to get a retrieval link returned to you, you WILL get invalid data when that secret is recovered from that link.

flashpaper's People

Contributors

andrewpaglusch avatar barry-smithjr avatar

Watchers

 avatar  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.