Skip to content
This repository has been archived by the owner on Jul 12, 2021. It is now read-only.

ducng99/Typi-outdated

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Rewrite

Typi will be rewritten in Typescript, using React instead of Vue. The current working model is a failure. New plans incoming.
Stay tuned.

Typi 💬 - a simple End-to-End Encryption web chat (W.I.P)

Typi logo

Fun project, nothing else.

What is this?

Typi 💬 is a simple web chat project features End-to-End Encryption (using hybrid encryption).

When you register, a private key 🔑 and a public key 🔑 will be generated using your browser (RSA-1024). Only your public key 🔑 will be uploaded to our server for encryption and your private key 🔑 will be stored in local storage in your browser.
Whenever you receive a message, your browser will decrypt an AES key using your private key 🔑, decrypt the message with that AES key and then display it to you.
And vice versa, the message you sent will be encrypted using a randomly generated AES key, that key will be encrypted using the receiver's public key🔑 and the encrypted message with encrypted key will be saved on our server.

This way, neither us or your ISP can see the messages you send or receive.

We also use a cookie 🍪 to store your session ID. It expires after you close your browser or inactive for more than 15 minutes.

TODO

  • Show info of receiver with options on the right side of chat panel.
  • Add encryption to private key
  • Hash password before sending to server
  • New messages update cycle ➡ Notifications
  • Add Dark mode/theme
  • Add online status (can be disabled)
  • Add emojis and maybe stickers

Credits

Created using Vue.js, Bootstrap(-Vue), Express.js, MySQL, and other plugins.
👍 And thanks to Stack Overflow members.
Logo made from an icon by Becris from www.flaticon.com