Mini Project sem IV computer engineering
Mini Project sem IV computer engineering
By
Sanjay A. Sonkawade
(123CP3162A) Shrutik R. Patil
(123CP3185A) Siddhi P. Nalawade
(123CP3120B) Sakshi G. Jadhav
(123CP3104B)
Examiners
1…………………………………………………..
(Internal Examiner Name & Sign)
2………………………………………
(External Examiner name & Sign)
Date:
Place:
Contents
Table of
Contents
Abstract i
Acknowledgement ii
Chapter 1 Introduction 1
1.1 Motivation 1
1.2 Problem Statement 1
1.3 Objectives 1
Chapter 2 Literature Survey 2
3 Cryptography Concept 3
3.1 Architecture/Framework 3
1.1 Motivation
The motivation behind our cryptography Android application project, Secure Chat, stems from
the pressing need for secure and private communication in today's digital age. With the ever-
increasing risks to data privacy and the rise of cyber threats, it has become imperative to develop
a user- friendly and accessible solution that empowers individuals and organizations to protect
their sensitive information.
1.3 Objectives
1. User-Friendly App: Develop an intuitive Android app appealing to various users.
2. End-to-End Encryption: Implement advanced encryption for secure messaging.
Chapter 2: Literature Survey
In a review on network security and cryptography, Sandeep Tayal et al. mentioned that
with the emergence of social networks and commerce applications, huge amounts of data
are produced daily by organizations across the world. This makes information security a
huge issue in terms of ensuring that the transfer of data through the web is guaranteed.
With more users connecting to the internet, this issue further demonstrates the necessity of
cryptography techniques. This paper provides an overview of the various techniques used
by networks to enhance security, such as cryptography.
3.1 Architecture/Framework
Fig.3.1 Architecture/Framework
3.2 Details of Hardware & Software
Software Requirements:
Android Studio
Browser
Hardware Requirements:
Computer System (8GB Ram & Min.128 Storage)
Android Phone(2GB Ram or Above)
</manifest>
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/pic"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginBottom="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Cryptoking"
android:textColor="#EDC9AE"
android:textSize="40sp"
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_marginTop="50dp">
<View
android:id="@+id/divider1"
android:layout_width="wrap_content"
android:layout_height="5dp"
android:background="#66FAFAFA"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp">
<ViewFlipper
android:id="@+id/vf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_marginTop="5dp">
<View
android:layout_width="wrap_content"
android:layout_height="5dp"
android:background="#66FAFAFA"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_marginTop="30dp">
<Button
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:text="Encryption"
android:id="@+id/encd"
android:textSize="25dp"
android:textStyle="bold"
/>
<Button
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:text="Decryption"
android:id="@+id/decd"
android:textSize="25dp"
android:textStyle="bold"
/>
</LinearLayout>
</LinearLayout>
</ScrollView>
Activity_encoder.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools=http://schemas.android.com/tools
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/background5"
tools:context=".Encoder">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Encrypter"
android:textColor="#EDC9AE"
android:textSize="30sp"
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp"
android:layout_gravity="center">
<View
android:id="@+id/divider1"
android:layout_width="wrap_content"
android:layout_height="5dp"
android:background="#66FAFA"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginRight="5dp"
android:layout_marginBottom="15dp"
android:layout_marginLeft="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="Enter your text here"
android:textColor="#EDC9AE"
android:textSize="20sp"
android:layout_marginTop="5dp"
android:layout_gravity="left"/>
<EditText
android:id="@+id/etenc"
android:layout_width="360dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:textSize="20sp"
android:textColor="#FAFAFA"
android:layout_marginTop="5dp"/>
<Button
android:id="@+id/btnenc"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Encrypt"
android:background="@drawable/buttonoutline"
android:textSize="20sp"
android:textStyle="bold"
android:onClick="enc"
android:textColor="#EDC9AE"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_marginTop="15dp">
<View
android:id="@+id/divider2"
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="#66FAFA"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" your Encrypted text here"
android:textColor="#EDC9AE"
android:textStyle="bold"
android:textSize="20sp"
android:layout_marginTop="5dp"
android:layout_gravity="left"/>
<TextView
android:id="@+id/enctv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_gravity="left"
android:textColor="#FAFAFA"
android:layout_marginTop="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">
<Button
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Copy"
android:background="@drawable/buttonoutline"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="#EDC9AE"
android:onClick="cp2"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
Activity_decoder.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/background5"
tools:context=".Decoder">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Decrypter"
android:textSize="30sp"
android:textStyle="bold"
android:textColor="#EDC9AE"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp"
android:layout_gravity="center">
<View
android:id="@+id/divider1"
android:layout_width="wrap_content"
android:layout_height="5dp"
android:background="#66FAFA"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enter Your Text Here"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#EDC9AE"
android:layout_marginTop="5dp"
android:layout_gravity="left"/>
<EditText
android:id="@+id/etdec"
android:layout_width="360dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:textSize="20sp"
android:textColor="#FAFAFA"
android:layout_marginTop="5dp"/>
<Button
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Decrypt"
android:textStyle="bold"
android:background="@drawable/buttonoutline"
android:textSize="20sp"
android:textColor="#EDC9AE"
android:onClick="dec"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="15dp">
<View
android:id="@+id/divider2"
android:layout_width="wrap_content"
android:layout_height="5dp"
android:background="#66FAFA"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your decrypted text here"
android:textSize="20sp"
android:textColor="#EDC9AE"
android:layout_marginTop="5dp"
android:layout_gravity="left"/>
<TextView
android:id="@+id/dectv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#FAFAFA"
android:layout_marginTop="5dp"
android:layout_gravity="left"/>
</LinearLayout>
<Button
android:id="@+id/btncp1"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Copy"
android:background="@drawable/buttonoutline"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="#EDC9AE"
android:onClick="cp1"/>
</LinearLayout>
</ScrollView>
Buttonoutline.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="3dp"
android:color="#EDC9AE"/>
<corners
android:radius="3dp"/>
</shape>
MainActivity.java
package com.example.cryptoking;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ViewFlipper;
import java.util.Stack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager
.LayoutParams.FLAG _FULLSCREEN);
setContentView(R.layout.activity_main);
enc=findViewById(R.id.encd);
dec=findViewById(R.id.decd);
enc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent temp=new Intent(MainActivity.this,Encoder.class);
startActivity(temp);
}
});
dec.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent temp=new Intent(MainActivity.this,Decoder.class);
startActivity(temp);
}
});
vf=findViewById(R.id.vf);
int
images[]={R.drawable.bellaso_cipher,R.drawable.caesar_cipher_encryption,R.drawable.dorabe
lla_cipher};
for (int i=0;i<images.length;i++){
flipper(images[i]);
}
}
Encode.java
package com.example.cryptoking;
}
String dig = "";
String temps;
for (int j = 0; j < 7; j++) {
temps = Integer.toString(bin[j]);
dig = dig.concat(temps);
}
String rev="";
for (int j=dig.length()-1;j>=0;j--){
char ca= dig.charAt(j);
rev=rev.concat(String.valueOf(ca));
}
res=res.concat(rev);
}
res=initializer.concat(res);
return res;
}
}
Decode.java
package com.example.cryptoking;
if(initializer.charAt(i)!=s.charAt(i)){
flag=false;
break;
}
}
String data="";
for ( int i=8;i<s.length();i++){
char temp=s.charAt(i);
data=data.concat(String.valueOf(temp));
}
int asc[][] =new int [11101][8];
int idx=1;
int idx2=0;
for(int i=0;i<data.length();i++){
if(i%7==0){
idx++;
idx2=0;
char temp=data.charAt(i);
asc[idx][idx2]=temp-'0';
idx2++;
}
else {
char temp=data.charAt(i);
asc[idx][idx2]=temp-'0';
idx2++;
}
}
int num[]=new int[11111];
int nidx=0;
int temp=0;
int ct=0;
for (int i=0;i<=idx;i++){
ct=0;
temp=0;
for (int j=6;j>=0;j--){
int temp1=(int)pow(2,ct);
temp+=(asc[i][j]*temp1);
ct++;
}
num[nidx++]=temp;
}
String rv="";
char ch;
for (int i=0;i<nidx;i++)
{
ch=(char)num[i];
rv=rv.concat(String.valueOf(ch));
}
if (data.length()%7==0 && flag==true){
return rv;
}
else{
return inv;
}}}
Encoder.java
package com.example.cryptoking;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Encoder extends AppCompatActivity {
EditText etenc;
TextView enctv;
ClipboardManager cpb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_encoder);
etenc=findViewById(R.id.etenc);
enctv=findViewById(R.id.enctv);
cpb=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
}
public void enc(View view){
String temp=etenc.getText().toString();
String rv=encode.enc(temp);
enctv.setText(rv);
}
public void cp2(View view){
String data=enctv.getText().toString().trim();
if (!data.isEmpty()){
ClipData temp=ClipData.newPlainText("text",data);
cpb.setPrimaryClip(temp);
Toast.makeText(this, "Copied", Toast.LENGTH_LONG).show();
}
}
}
Decoder.java
package com.example.cryptoking;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Base64;
etdec=findViewById(R.id.etdec);
dectv=findViewById(R.id.dectv);
cp1board=(ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
}
public void dec(View view){
String temp=etdec.getText().toString();
String rv = decode.dec(temp);
dectv.setText(rv);
}
public void cpl(View view){
String data=dectv.getText().toString().trim();
if (!data.isEmpty()){
ClipData temp=ClipData.newPlainText("text",data);
cp1board.setPrimaryClip(temp);
Toast.makeText(this, "copied", Toast.LENGTH_SHORT).show();
}
}
}
Fig 4.1 Home Page
Fig 4.2 Encrypted Page
Fig 4.3 Decrypted Page
Chapter 4: Conclusion and Future Work
The Cryptography Android Application project concludes with the successful development of
"Secure Chat," ensuring user privacy and data security through robust encryption and user-
friendly features.
In the future, the project could focus on expanding features, optimizing performance, and
addressing emerging security challenges. Additionally, user feedback will be invaluable for
continuous improvement.
Chapter 5: REFERENCES
1. S. Tayal, N. Gupta, P. Gupta, D. Goyal and M. Goyal, "A Review paper on Network
Security and Cryptography," Advances in Computational Sciences and Technology, vol.
10, no. 5, pp. 763-770, 2017
2. (PDF) A Review Paper on Cryptography (researchgate.net)
3. http://www.android.com
4. www.youtube.com