GithubHelp home page GithubHelp logo

fateclando's Introduction

Fateclando

Aplicativo de troca de mensagens TCP/IP com criptografia de ponta a ponta. Desenvolvido na disciplina Projeto de Banco de Dados Distribuídos (2020-2).

Equipe

Alunos:

  • Gabriel Pereira Bastos
  • Matheus Rocha da Silva

Professor Diogo Branquinho

Objetivo

Desenvolver em dupla um aplicativo de troca de mensagens TCP/IP com criptografia de ponta a ponta, ou seja, as mensagens transmitidas devem ser criptografadas com criptografia do tipo Assimétrica.

Trabalho em dupla.

Cada aluno deve gerar a sua chave pública e chave privada, e realizar a troca da chave pública manualmente com o seu colega. Depois disso, cada mensagem enviada deve ser criptografada com a chave pública do destinatário e o destinatário deve descriptografar a mensagem com a sua chave privada de forma automática.

OBS: Exemplos encontram-se no http://github.com/diogobranquinho

Demonstração

aplicação em funcionamento

Na esquerda temos uma máquina local, na direita uma máquina virtual com conexão "Bridged Adapter".

O programa solicita o IP destinatário e estabelece uma conexão TCP.

Os usuários enviam mensagens e quando querem sair, pressionam CTRL+C.

Como executar

  • Instale a biblioteca rsa: pip3 install rsa
  • Execute o script gerarChaves: python3 gerarChaves.py
  • Troque a chave publica gerada com seu amigo (Ele deve te mandar a chave dele, e você manda a sua pra ele).
    • ATENÇÃO: A aplicação vai procurar pela chave publica do seu amigo na pasta do projeto, com o nome public.pem, porém, a sua chave tem o mesmo nome, então depois de enviar sua chave publica pra ele, altere o nome da sua chave, senão vai dar ruim.
  • Certifique-se de que seu Firewall não está bloqueando a porta 20000
  • Execute o script fateclando: python3 fateclando.py
  • Informe o IP do seu amigo
  • Envie mensagens
  • Pressione Ctrl+C para finalizar a conexão

fateclando's People

Contributors

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