Skip to content

talkCipher is an android based chat application offering end-to-end encryption of messages to the user based on his/her choice of encryption methods, assuring ultimate safety, with absolutely lovable UI for best experience.

Notifications You must be signed in to change notification settings

prashantprem/talkCipher

Repository files navigation

talkCipher

Overview

As the Internet evolved, so did the privacy issues, resulting in it becoming one of the most important concerns for a user before putting hands on any of the applications in front.
talkCipher is an android based chat application offering end-to-end encryption of messages to the user based on his/her choice of encryption methods, assuring ultimate safety, with absolutely lovable UI for best experience.

Features

  • Splash Screen
  • User Authentication through mobile number OTP Verification.
  • One to one chat facility.
  • Panel to seek list of users with username, profile picture and last message of conversation(if any) displayed.
  • Panel to chat, with interface properties similar to Whatsapp, displaying
    • two different chat bubbles to differentiate between sender and reciever.
    • time of message sent is also displayed.
  • End to end encryption of chats.
  • Database management to store chats(in Encrypted form).
  • Panel to provide choice amongst different Encryption methods to secure each message.
  • Panel to upload and update Profile Picture from device.
  • Offline data persistency enabled.

Implementation

Below mentioned are the highlights of our codebase, touching all the major aspects of this project.

  • User Authentication
    This project uses FirebaseAuth package for authentication using mobile number and OTP Verification. SignUp page is used to authenticate the details and push it to the database user node if verified. SignIn page matches the input details with that in database and provide access to account after OTP Verification if such user exists.

  • Chat & Cipher Fragment
    The code has been written with a try of using best practises, hence the different tabs mentioned are implemented using tab layout with each tab details using Fragments. The details of previous chats are displayed in RecyclerView.

  • Load Images using Picasso
    Picasso provides a hassle-free image loading facility to your application. This project uses this to display profile pictures. Click here to read more about Picasso.

  • AES, DES and RSA Implementation for encryption
    • AES: Advanced Encryption Standard aka Rijndael is a symmetric key-based approach of data encryption. This application uses AES class of Java for implentation of AES Algorithm.
    • DES: Digital Encryption Standard is also a symmetric-key block cipher algorithm used for data encryption. It accepts the plain text in 64-bit blocks and changes it to the cipher text that uses the 64-bit keys to encrypt the data. It uses same key for encryption and decryption. The algorithm functionalities are achieved using DES class of Java.
    • RSA: It is an asymmetric encryption algorithm, that is, two different keys are responsible for encryption and decryption of data. The algorithm functionalities are achieved using RSA class of Java.

  • Update Profile Picture FirebaseStorage is used to store the profile pictures with offline capabilities enabled thus reducing the rendering time of pictures.

Package, Platforms and Resources Used

Glimpse of UI

![UI](https://user-images.githubusercontent.com/56858479/114346193-ac135780-9b80-11eb-9e20-05b020e10461.jpg)



Hit the ⭐ if you liked the project

About

talkCipher is an android based chat application offering end-to-end encryption of messages to the user based on his/her choice of encryption methods, assuring ultimate safety, with absolutely lovable UI for best experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages