Code Monkey home page Code Monkey logo

crypto-project's Introduction

Proyecto de criptografía 2020

Screenshot00

Problemática

In a certain company, they have a server to store sensitive information. To keep it secure, every file stored in this server must be encrypted. The CEO have realized that they are storing duplicated files. The company has financial problems, thus it is not possible to buy more servers. Still they need to keep secure the sensitive information, but without duplicates. The CEO has discovered that there is a cryptographic technique to solve this problem, called secure deduplication, but he does not know anything about cryptography.

Imagine that you have a company that provides security services and designa a software to help the company with the problem.

Descripción

CryptoDplication es una aplicación multiplataforma que encripta archivos utilizando las llaves RSA que se encuentran en el sistema operativo del usuario y permite guardarlos junto con sus metadatos criptográficos en Google Drive.

Tecnologías utilizadas

Tecnología Uso
React Js UI
Tailwind CSS + JIT UI
Node Crypto Module Encriptación de archivos
GoogleOAuth2 Inicio de sesión con Google
Electron JS Aplicación de escritorio

Uso

Instalar dependencias utilizando Yarn:

yarn install

Instalar el servidor de llaves criptográficas y ponerlo en funcionamiento

Iniciar servidor de desarrollo:

// Node v17+
npm run dev:n17
// Node >v17
npm run dev

Generando llaves ssh RSA

En el repositorio se incluyen 3 archivos de ejemplo, la clave privada key, la clave pública key.pub y la clave pública en formato PEM key.pub.pem.

NOTA IMPORTANTE: Estas llaves incluídas en el repositorio no son seguras, solo para demostración.

Para generar claves personales, ejecutar el siguiente comando:

ssh-keygen -t rsa -b 1024 -m PEM -f "./key" -N '""' && ssh-keygen -f .\key.pub -e -m pem > key.pub.pem

Establecer llaves

Al establecer las llaves criptográficas de usuario, la aplicación preguntará primero por la llave pública (Elegir key.pub.pem o *.pub.pem), luego la aplicación pedirá la llave privada (elegir el archivo sin extensión key).

Capturas

Interfaz principal (sin iniciar sesión):

Screenshot01

Menú desplegable para iniciar sesión:

Screenshot02

La aplicación automáticamente redirige al navegador para iniciar sesión con Google:

Screenshot03

Sesión iniciada (se guarda de forma persistente):

Screenshot04

Llaves agregadas exitósamente:

Screenshot05

Archivos agregados para encriptar:

Screenshot06

Archivos encriptados en la cola, se pueden agregar más archivos a encriptar o subirlos a la nube:

Screenshot06

Archivos en proceso de carga:

Screenshot06

Sección de descargas, aquí se muestran los archivos que se encuentren en la nube del usuario y se permite seleccionar la ruta dónde se van a guardar los archivos:

Screenshot06

Al actualizar la sección, se muestran los archivos en la nube:

Screenshot06

Se pueden descargar los archivos encriptados y automáticamente la aplicación los desencriptará y guardará en la carpeta indicada:

Screenshot06

crypto-project's People

Contributors

joelhernandez343 avatar marbrehi avatar dependabot[bot] avatar

Stargazers

Abraham  avatar

Watchers

James Cloos 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.