You are on page 1of 101

Sensornode1.

java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.util.*;

import javax.swing.event.*;

import java.sql.*;

import java.rmi.*;

import java.util.Scanner;

public class sensornode1 extends JFrame implements ActionListener

String filesel,s1,s2,mst;

String[] pmes;

String[] str1=new String[10];

Random r;

File f;

JLabel fname;

JLabel file;

JLabel packet;

JLabel title,title1;

JLabel n1;

JButton open;
JButton send;

JButton reset;

JTextField fname1;

JTextField file1;

JTextArea packet1;

String msg="";

Container c;

ImageIcon ii;

ImageIcon i2;

Socket c1;

public sensornode1()

initializeComponent();

private void initializeComponent()

fname=new JLabel("<html><font color=#FFFFFF


size=+1><strong>FileName</strong></font>");

file=new JLabel("<html><font color=#FFFFFF size=+1><strong>File</strong></font>");


packet=new JLabel("<html><font color=#FFFFFF size=+1><strong>Packet
Sending</strong></font>");

title=new JLabel("<html><font color=red size=+2><strong>Sec in Wireless Sensor


Network </strong></font>");

title1=new JLabel("<html><font color=red size=+2><strong>Using</strong></font>");

n1=new JLabel("<html><font color=red size=+1><strong>Node1</strong></font>");

JLabel imageLabel1 = new JLabel();

ImageIcon v1 = new ImageIcon(this.getClass().getResource(""));

imageLabel1.setIcon(v1);

open=new JButton("Open");

open.addActionListener(this);

send=new JButton("Send");

send.addActionListener(this);

fname1=new JTextField(10);

file1=new JTextField(10);
packet1=new JTextArea();

c=getContentPane();

c.setLayout(null);

c.add(fname);

c.add(file);

c.add(packet);

c.add(packet1);

c.add(n1);

c.add(imageLabel1);

c.add(title);

c.add(title1);

c.add(open);

c.add(send);

c.add(fname1);

c.add(file1);

c.setBackground(Color.red);

c.setLocation(300,300);
title.setBounds(75,30,700,50);

title1.setBounds(300,80,500,50);

imageLabel1.setBounds(475,125,450,350);

fname.setBounds(30,150,250,25);

file.setBounds(30,200,250,25);

packet.setBounds(150,300,200,25);

packet1.setBounds(150,350,150,150);

n1.setBounds(475,375,150,100);

open.setBounds(255,200,75,25);

send.setBounds(150,245,75,25);

fname1.setBounds(150,150,150,25);

file1.setBounds(150,200,100,25);
setSize(800,600);

setVisible(true);

setTitle("Sensor Node1");

public void actionPerformed(ActionEvent ae)

if(ae.getSource()==send)

if(fname1.getText().equals(""))

{
JOptionPane.showMessageDialog(null,"Enter File Name");

fname1.requestFocus();

else if(file1.getText().equals(""))

JOptionPane.showMessageDialog(null,"Browse File");

file1.requestFocus();

else

String nm="sensornode1";

String fn =fname1.getText();

f=new File(filesel);

String st;

int sum=0;

Scanner sc=new Scanner(System.in);


String msg = f.toString();

System.out.println(msg);

// System.out.print("ENTER THE SIZE OF KEY :");

//int keySize= sc.nextInt();

int keySize = Integer.parseInt(JOptionPane.showInputDialog("Enter KEY SIZE"));

int key[]=new int[keySize];

int keyB[][]=new int[keySize][8];

//System.out.print("ENTER THE PRIME NUMBERS :");

JOptionPane.showMessageDialog(null,"Enter The Prime Numbers");

for(int i=0; i<keySize; i++)

key[i]=Integer.parseInt(JOptionPane.showInputDialog("Enter prime number"));

for(int i=0; i<keySize; i++){

sum=sum+key[i];

int sum1=sum;

int digitSum=0;

boolean flag=true;

while(flag){

int remainder=sum1%10;

digitSum=digitSum+remainder;

sum1=sum1/10;
if(sum1==0)

flag=false;

//----------------------------------------------------------------------------------------------------------

System.out.println("SUM OF PRIMES :"+sum+"\tSUM OF DIGITS :"+digitSum);

//----------------------------------------------------------------------------------------------------------

int random=sum%digitSum;

//----------------------------------------------------------------------------------------------------------

System.out.println("SPACING :"+random);

//----------------------------------------------------------------------------------------------------------

int extraLength=msg.length()/random;

int ASCIImsg[]=new int[msg.length()+extraLength];

int binary[][]=new int[msg.length()+extraLength][8];

//----------------------------------------------------------------------------------------------------------

System.out.println("EXTRA LENGTH :"+extraLength);

//----------------------------------------------------------------------------------------------------------

for(int i=0,j=0,k=random;i<msg.length()+extraLength;i++,j++){

if(j==random-1){
int randomNum = (int)(Math.random()*255);

ASCIImsg[i++]=(int)(msg.charAt(j));

ASCIImsg[i]=randomNum;

//----------------------------------------------------------------------------------------------------------

// System.out.println("ASCII inserting random value :"+ASCIImsg[i]);

//----------------------------------------------------------------------------------------------------------

System.out.println("");

random=random+k;

else

ASCIImsg[i]=(int)(msg.charAt(j));

// System.out.println("I :"+i);

// System.out.println("J :"+j);

// System.out.println("RANDOM :"+random);

// System.out.println("K :"+k);

//----------------------------------------------------------------------------------------------------------

//System.out.println("ASCII inserting random value :"+ASCIImsg[i]);

//----------------------------------------------------------------------------------------------------------

//System.out.println((int)msg.charAt(i));

//----------------------------------------------------------------------------------------------------------

for(int i=0;i<(msg.length()+extraLength);i++){

System.out.print(ASCIImsg[i]+"\t");
}

//----------------------------------------------------------------------------------------------------------

for(int i=0;i<msg.length()+extraLength;i++){

if(ASCIImsg[i]>=128){

binary[i][0]=1;

ASCIImsg[i]=ASCIImsg[i]-128;

else

binary[i][0]=0;

if(ASCIImsg[i]>=64){

binary[i][1]=1;

ASCIImsg[i]=ASCIImsg[i]-64;

else

binary[i][1]=0;

if(ASCIImsg[i]>=32){

binary[i][2]=1;

ASCIImsg[i]=ASCIImsg[i]-32;

else

binary[i][2]=0;

if(ASCIImsg[i]>=16){

binary[i][3]=1;
ASCIImsg[i]=ASCIImsg[i]-16;

else

binary[i][3]=0;

if(ASCIImsg[i]>=8){

binary[i][4]=1;

ASCIImsg[i]=ASCIImsg[i]-8;

else

binary[i][4]=0;

if(ASCIImsg[i]>=4){

binary[i][5]=1;

ASCIImsg[i]=ASCIImsg[i]-4;

else

binary[i][5]=0;

if(ASCIImsg[i]>=2){

binary[i][6]=1;

ASCIImsg[i]=ASCIImsg[i]-2;

else

binary[i][6]=0;

if(ASCIImsg[i]>=1){

binary[i][7]=1;

ASCIImsg[i]=ASCIImsg[i]-1;
}

else

binary[i][7]=0;

//-----------------------------------------------------------------------------------------------------------

System.out.print("binary message :");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

System.out.println();

//-----------------------------------------------------------------------------------------------------------

//for(int i=0;i<=7;i++)

// System.out.println(binary[0][i]);

//complementing the message

for(int i=0;i<msg.length()+extraLength;i++){

for(int j=0;j<8;j++){

if(binary[i][j]==1)

binary[i][j]=0;

else

binary[i][j]=1;

}
//----------------------------------------------------------------------------------------------------------

for(int i=0;i<msg.length()+extraLength;i++){

System.out.print("Complement: ");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

System.out.println();

//----------------------------------------------------------------------------------------------------------

//key to binary

for(int i=0;i<keySize;i++){

if(key[i]>=128){

keyB[i][0]=1;

key[i]=key[i]-128;

else

keyB[i][0]=0;

if(key[i]>=64){

keyB[i][1]=1;

key[i]=key[i]-64;

else
keyB[i][1]=0;

if(key[i]>=32){

keyB[i][2]=1;

key[i]=key[i]-32;

else

keyB[i][2]=0;

if(key[i]>=16){

keyB[i][3]=1;

key[i]=key[i]-16;

else

keyB[i][3]=0;

if(key[i]>=8){

keyB[i][4]=1;

key[i]=key[i]-8;

else

keyB[i][4]=0;

if(key[i]>=4){

keyB[i][5]=1;

key[i]=key[i]-4;

else

keyB[i][5]=0;
if(key[i]>=2){

keyB[i][6]=1;

key[i]=key[i]-2;

else

keyB[i][6]=0;

if(key[i]>=1){

keyB[i][7]=1;

key[i]=key[i]-1;

else

keyB[i][7]=0;

//-----------------------------------------------------------------------------------------------------------

System.out.print("binary KEY :");

for(int j=0;j<8;j++){

System.out.print(keyB[i][j]);

System.out.println();

//-----------------------------------------------------------------------------------------------------------

//XOR with primes


for(int i=0,k=0;i<msg.length()+extraLength;i++,k++){

for(int j=0;j<8;j++){

if(binary[i][j]==keyB[k][j]){

binary[i][j]=0;

else{

binary[i][j]=1;

if(k==keySize-2)

k=0;

for(int i=0;i<msg.length()+extraLength;i++){

System.out.print("binary KEY after XOR with primes:");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

System.out.println();

//-----------------------------------------------------------------------------------------------------------

//XOR with key

for(int i=0;i<msg.length()+extraLength;i++){
for(int j=0;j<8;j++){

if(binary[i][j]==keyB[keySize-1][j]){

binary[i][j]=0;

else{

binary[i][j]=1;

for(int i=0;i<msg.length()+extraLength;i++){

System.out.print("binary KEY after XOR with key:");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

System.out.println();

//binary to ASCII

int sum2;

for(int i=0;i<msg.length()+extraLength;i++){

sum2=0;

for(int j=0;j<8;j++){

if(binary[i][j]==1){

switch(j){
case 0:sum2=sum2+128;break;

case 1:sum2=sum2+64;break;

case 2:sum2=sum2+32;break;

case 3:sum2=sum2+16;break;

case 4:sum2=sum2+8;break;

case 5:sum2=sum2+4;break;

case 6:sum2=sum2+2;break;

case 7:sum2=sum2+1;break;

ASCIImsg[i]=sum2;

}//End of BINARY to ASCII

System.out.println();

for(int i=0;i<msg.length()+extraLength;i++){

System.out.print(ASCIImsg[i]+"\t");

System.out.println("Connected To StorageNode....");

JOptionPane.showMessageDialog(null,"Connected To StorageNode...");

System.out.println("\n");
try

String url = "rmi://127.0.0.1/storagenode";

srvint in = (srvint) Naming.lookup(url);

int sz;

byte[] buffer;

pmes=new String[10];

r =new Random();

FileInputStream fin=new FileInputStream(filesel);

sz=fin.available()/7;

buffer=new byte[sz];

int m=r.nextInt(7);

StringBuffer sb=new StringBuffer();

for(int i=0;i<=7;i++)

{
fin.read(buffer);

st=new String(buffer);

pmes[i]=st;

sb.append(st);

String pt=packet1.getText();

String pt1="null";

if(pt!=pt1)

packet1.setText("");

System.out.println("File Sending From Sensornode1 to Storagenode");

JOptionPane.showMessageDialog(null,"File Sending From Sensornode1 to Storagenode.........");

System.out.println("\n");

System.out.println("Filename:\t"+fn);

System.out.println("\n");

for(int i=0;i<=7;i++)
{

if(i!=m)

packet1.append("Packet["+i+"]:PACK");

packet1.append("\n");

new cc1(i,m);

else

packet1.append("Packet["+i+"]:NACK");

packet1.append("\n");

new cc1(i,m);

System.out.println("\n \t Packet["+m+"]:Positive ACK" );

System.out.println("\n File Sent To Storagenode" );


JOptionPane.showMessageDialog(null,"File Sent to Storage Node");

packet1.append("Packet["+m+"]:PACK");

in.getfile(nm,fn,sb);

file1.setText("");

fname1.setText("");

catch(Exception e)

}
}

if(ae.getSource()==open)

FileDialog fd1=new FileDialog(this,"OPEN",FileDialog.LOAD);

fd1.setVisible(true);

filesel=fd1.getDirectory()+fd1.getFile();

file1.setText(filesel);

public static void main(String args[])

new sensornode1();

System.out.println("Sensornode1 Started....");

class cc1 extends Thread

{
Thread t;

cc1(int ps,int rm)

try

if(rm!=ps)

System.out.println("\t Packet["+ps+"]:Positive ACK");

System.out.println("\n");

t.sleep(2000);

else

System.out.println("Packet["+ps+"]:Negative ACK");

System.out.println("\n");

}
}

catch(Exception e)

System.out.println(e);

storageNode.java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.util.*;

import java.util.Date;

import java.text.SimpleDateFormat;
import javax.swing.event.*;

import java.sql.*;

import java.rmi.*;

import java.security.InvalidKeyException;

import java.security.Key;

import org.jvnet.substance.*;

public class storagenode

public static void main(String[] args)throws Exception

//srvimp rob = new srvimp(2001);

srvimp rob = new srvimp();

Naming.rebind("storagenode",rob);

System.out.println("Server is waiting for Client to Connect:");

storagewindow sw=new storagewindow();

class storagewindow extends JFrame implements ActionListener


{

JLabel vfile;

JLabel file;

JLabel packet;

JLabel fid;

JLabel title,title1;

JLabel n1;

JButton open;

JButton detail;

JButton view;

JTextField fname1;

JTextField file1;

JTextField fid1;

JTextArea packet1;

JTextArea packet2;

String msg="";

String filesel;

Container c;
ImageIcon ii;

ImageIcon i2;

/*

static {

try {

SubstanceLookAndFeel

.setCurrentWatermark("org.jvnet.substance.watermark.SubstanceMagneticFieldWatermark");

SubstanceLookAndFeel

.setCurrentTheme("org.jvnet.substance.theme.SubstanceCharcoalTheme");

SubstanceLookAndFeel

.setCurrentGradientPainter("org.jvnet.substance.painter.SpecularGradientPainter");

SubstanceLookAndFeel

.setCurrentButtonShaper("org.jvnet.substance.button.BaseButtonShaper");

UIManager.setLookAndFeel(new SubstanceLookAndFeel());

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

*/
public storagewindow()

initializeComponent();

private void initializeComponent()

//new net();

//v = net.vnode;

vfile=new JLabel("<html><font color=#FFFFFF size=+1><strong>All


Files</strong></font>");

fid=new JLabel("<html><font color=#FFFFFF size=+1><strong>File


ID:</strong></font>");

file=new JLabel("<html><font color=#FFFFFF size=+1><strong>File</strong></font>");

packet=new JLabel("<html><font color=#FFFFFF size=+1><strong>Packet


Sending</strong></font>");

title=new JLabel("<html><font color=#FFFFFF size=+2><strong>Data Security Using


Honey Pot System</strong></font>");

title1=new JLabel("<html><font color=#FFFFFF size=+2><strong></strong></font>");

n1=new JLabel("<html><font color=#FFFFFF size=+1><strong>Storage


Node</strong></font>");
JLabel imageLabel1 = new JLabel();

ImageIcon v1 = new ImageIcon(this.getClass().getResource(""));

imageLabel1.setIcon(v1);

open=new JButton("All Files");

open.addActionListener(this);

detail=new JButton("Details");

detail.addActionListener(this);

view=new JButton("View");

view.addActionListener(this);

fname1=new JTextField(10);

file1=new JTextField(10);

fid1=new JTextField(10);

packet1=new JTextArea();

packet2=new JTextArea(6,20);

JScrollPane sa = new JScrollPane(packet2);

JScrollPane sa1 =new JScrollPane(packet1);


c=getContentPane();

c.setLayout(null);

//c.add(vfile);

// c.add(file);

//c.add(packet);

c.add(sa1);

c.add(sa);

c.add(n1);

c.add(fid);

c.add(fid1);

c.add(imageLabel1);

c.add(title);

c.add(title1);

c.add(open);

c.add(detail);

c.add(view);

//c.add(fname1);

// c.add(file1);
c.setBackground(new java.awt.Color(100,90,200));

c.setLocation(300,300);

title.setBounds(75,30,700,50);

title1.setBounds(300,80,500,50);

fid.setBounds(250,430,200,50);

fid1.setBounds(345,445,100,25);

imageLabel1.setBounds(305,185,350,150);

vfile.setBounds(100,150,250,25);

file.setBounds(30,200,250,25);

packet.setBounds(150,300,200,25);

sa1.setBounds(65,185,150,150);

sa.setBounds(500,185,200,150);

n1.setBounds(305,315,150,100);

open.setBounds(77,145,125,25);
detail.setBounds(533,145,125,25);

view.setBounds(345,495,75,25);

fname1.setBounds(150,150,150,25);

file1.setBounds(150,200,100,25);

setSize(800,600);

setVisible(true);

setTitle("Storage Node");

public void actionPerformed(ActionEvent ae)

if(ae.getSource()==open)
{

String aa= packet1.getText();

String aaa="null";

if(aaa != aa)

packet1.setText("");

String fname=null;

StringBuffer sb = new StringBuffer();

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file";

ResultSet rs=st.executeQuery(sql);

while(rs.next())

fname=rs.getString("filename");

packet1.append(fname);

//sb.append(fname);

packet1.append("\n");
//fname1=ss.append(fname).append("\n");

catch(Exception e)

System.out.println(e);

if(ae.getSource()==view)

String v= fid1.getText();

if(fid1.getText().equals(""))

JOptionPane.showMessageDialog(null,"Enter File Name");

fid1.requestFocus();

else
{

String fd=fid1.getText();

new admin1(fd);

fid1.setText("");

if(ae.getSource()==detail)

String p= packet2.getText();

String pp="null";

if(p != pp)

packet2.setText("");

String fname=null,nname=null,fid=null;

try {

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file";

ResultSet rs=st.executeQuery(sql);

while(rs.next())

packet2.append("File ID:");

fid=rs.getString("ID");

packet2.append(fid);

packet2.append("\n");

packet2.append("File Name:");

fname=rs.getString("filename");

packet2.append(fname);

packet2.append("\n");

packet2.append("File Received From:");

nname=rs.getString("nodename");

packet2.append(nname);

packet2.append("\n");

packet2.append("*********************");

packet2.append("\n");

catch(Exception e)
{

System.out.println(e);

public static void main(String args[])

new storagewindow();

class admin1 extends JFrame implements ActionListener,ItemListener

private JLabel label1;


private JTextField text1;

private JButton submit;

Container c;

String a1;

admin1(String a)

this.a1=a;

c=getContentPane();

c.setLayout(new FlowLayout());

label1=new JLabel("Enter Password");

c.add(label1);

text1=new JTextField(10);

text1.addActionListener(this);

c.add(text1);
submit=new JButton("submit");

submit.addActionListener(this);

c.add(submit);

add(submit);

submit.setBounds(160,100,100,20);

setLayout(null);

add(label1);

label1.setBounds(40,40,120,25);

add(text1);

text1.setBounds(160,40,140,20);

this.setSize(400,175);

this.show();

}
public void actionPerformed(ActionEvent ae)

this.dispose();

String pa="hp";

if(ae.getSource()==submit)

if(text1.getText().equals(""))

JOptionPane.showMessageDialog(null,"Enter Password");

text1.requestFocus();

else if(text1.getText().equals(pa))

// if password correct show original file

String fnam1="asdas";
byte[] b1=null;

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file where filename='"+a1+"'";

ResultSet rs=st.executeQuery(sql);

while(rs.next())

b1=rs.getBytes("file");

catch(Exception e)

System.out.println(e);

}
String file,dir,path,ms;

FileDialog fd2=new FileDialog(this,"SAVE",FileDialog.SAVE);

fd2.setVisible(true);

file=fd2.getFile();

dir=fd2.getDirectory();

path=dir+file;

try

FileOutputStream fos=new FileOutputStream(path);

for(int k=0;k<=b1.length;k++)

fos.write(b1[k]);

}catch(Exception e){}
}

else

// if password not correct show encrypted file

String node="storagenode";

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

Date date = new Date();

String pass=text1.getText();

try {

InetAddress Address = InetAddress.getLocalHost();

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="insert into misbehave(filename,node,cdate,address,pass)


values('"+a1+"','"+node+"','"+date+"','"+Address+"','"+pass+"')";

st.executeUpdate(sql);

}
catch(Exception e)

System.out.println(e);

byte[] b1=null;

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file where filename='"+a1+"'";

ResultSet rs=st.executeQuery(sql);

while(rs.next())

b1=rs.getBytes("file");

catch(Exception e)
{

System.out.println(e);

new viewfile(a1,b1);

JOptionPane.showMessageDialog(null,"You are not authorized to view file");

text1.requestFocus();

public void itemStateChanged(ItemEvent ie)

{
repaint();

public static void main(String arg[])

class viewfile extends JFrame

private JTextArea box;

private JButton submit;

JScrollPane sa;

Container c;

byte[] ba;

String na;

viewfile(String n,byte[] a)

this.na=n;

this.ba=a;

c=getContentPane();
c.setLayout(new FlowLayout());

box=new JTextArea(25,40);

sa = new JScrollPane(box);

sa.setBounds(20,20,500,500);

c.add(sa);

String ba1=new String(ba);

String x=encryptString(ba1);

box.append(x);

this.setTitle(na+".txt");

this.setSize(500,500);

this.show();

public static String encryptString(String str)

StringBuffer sb = new StringBuffer (str);

String key="Encrypt Key";

int lenStr = str.length();

int lenKey = key.length();

//
// For each character in our string, encrypt it...

for ( int i = 0, j = 0; i < lenStr; i++, j++ )

if ( j >= lenKey ) j = 0; // Wrap 'round to beginning of key string.

//

// XOR the chars together. Must cast back to char to avoid compile error.

//

sb.setCharAt(i, (char)(str.charAt(i) ^ key.charAt(j)));

return sb.toString();

public void itemStateChanged(ItemEvent ie)

repaint();

public static void main(String arg[])

Sink.java
import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.util.*;

import javax.swing.event.*;

import java.sql.*;

import java.rmi.*;

import org.jvnet.substance.*;

public class sink extends JFrame implements ActionListener

String filesel,s1,s2,mst;

String[] pmes;

String[] str1=new String[10];

Random r;

File f;
// JLabel fname;

// JLabel file;

JLabel packet;

JLabel title,title1;

JButton view;

// JButton send;

JButton mis;

JButton detail;

// JTextField fname1;

// JTextField file1;

JTextArea packet1;

String msg="";

Container c;

ImageIcon ii;

ImageIcon i2;

Socket c1;
/* static {

try {

SubstanceLookAndFeel

.setCurrentWatermark("org.jvnet.substance.watermark.SubstanceMagneticFieldWatermark");

SubstanceLookAndFeel

.setCurrentTheme("org.jvnet.substance.theme.SubstanceCharcoalTheme");

SubstanceLookAndFeel

.setCurrentGradientPainter("org.jvnet.substance.painter.SpecularGradientPainter");

SubstanceLookAndFeel

.setCurrentButtonShaper("org.jvnet.substance.button.BaseButtonShaper");

UIManager.setLookAndFeel(new SubstanceLookAndFeel());

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}*/

public sink()

{
initializeComponent();

private void initializeComponent()

//new net();

//v = net.vnode;

// fname=new JLabel("<html><font color=#FFFFFF size=+1><strong>Search


Query</strong></font>");

// file=new JLabel("<html><font color=#FFFFFF size=+1><strong>File</strong></font>");

packet=new JLabel("<html><font color=#FFFFFF size=+1><strong>Packet


Sending</strong></font>");

title=new JLabel("<html><font color=#FFFFFF size=+2><strong></strong></font>");

title1=new JLabel("<html><font color=#FFFFFF size=+2><strong></strong></font>");

JLabel imageLabel1 = new JLabel();

ImageIcon v1 = new ImageIcon(this.getClass().getResource(""));

imageLabel1.setIcon(v1);
view=new JButton("View Files");

view.addActionListener(this);

// send=new JButton("Receive");

// send.addActionListener(this);

mis=new JButton("Misbehavior Details");

mis.addActionListener(this);

detail=new JButton("File Details");

detail.addActionListener(this);

// fname1=new JTextField(10);

// file1=new JTextField(10);

packet1=new JTextArea();

JScrollPane sa = new JScrollPane(packet1);

c=getContentPane();

c.setLayout(null);

// c.add(fname);
//c.add(file);

//c.add(packet);

c.add(sa);

c.add(imageLabel1);

c.add(title);

c.add(title1);

c.add(view);

// c.add(send);

c.add(mis);

c.add(detail);

// c.add(fname1);

//c.add(file1);

c.setBackground(new java.awt.Color(100,90,200));

c.setLocation(300,300);

title.setBounds(75,30,700,50);

title1.setBounds(300,80,500,50);
imageLabel1.setBounds(370,250,350,300);

//fname.setBounds(295,175,250,25);

//file.setBounds(30,200,250,25);

packet.setBounds(170,300,200,25);

sa.setBounds(62,225,150,150);

view.setBounds(75,175,125,25);

// send.setBounds(465,225,125,25);

mis.setBounds(60,425,155,25);

detail.setBounds(60,465,155,25);

// fname1.setBounds(465,175,150,25);

// file1.setBounds(150,200,100,25);

setSize(800,600);

setVisible(true);

setTitle("Sink");
}

public void actionPerformed(ActionEvent ae)

if(ae.getSource()==view)

try

String url = "rmi://127.0.0.1/storagenode";

srvint in = (srvint) Naming.lookup(url);

String v="view";

StringBuffer sb=(in.viewfile(v));

packet1.setText(sb.toString());

}
catch(Exception e)

System.out.println(e);

if(ae.getSource()==detail)

new detail();

/*

if(ae.getSource()==send)

if(fname1.getText().equals(""))

JOptionPane.showMessageDialog(null,"Enter File Name");

fname1.requestFocus();
}

else

String fn=fname1.getText();

try

String url = "rmi://127.0.0.1/storagenode";

srvint in = (srvint) Naming.lookup(url);

// byte[] b1=in.storefile(fn);

byte[] b1=null;

byte[] b5=null;

int count=0,n=0;

int[] arrsascii;

try {

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

Statement st1 = con.createStatement();

Statement st2 = con.createStatement();

String sql1 = "select * from temp1";

String sql="select * from file where filename='"+fn+"'";

ResultSet rs=st.executeQuery(sql);

ResultSet rs1 = st1.executeQuery(sql1);

ResultSet res = st2.executeQuery("SELECT COUNT(*) FROM temp1");

while (res.next())

count = res.getInt(1);

arrsascii = new int[count];

while(rs.next())

b1=rs.getBytes("file");

}
while(rs1.next())

int as = rs1.getInt(1);

arrsascii[n] =as;

n++;

System.out.println(as);

for(int q=0;q<arrsascii.length;q++)

System.out.println(arrsascii[q]);

String dec = new String(b1);

// decrypt(dec);

//System.out.println(dec);

//start decrypting

// String msg;

int msg;

Scanner sc=new Scanner(System.in);

// msg=sc.next();
//msg = dec.toString();

msg = arrsascii.length;

//int msg = ASCIImsgs.length;

System.out.println("ASCIIMSGS length"+msg);

int ASCIImsg[]=new int[msg];

int ASCIImsg1[]=new int[msg];

int binary[][]=new int[msg][8];

// System.out.print("ENTER THE SIZE OF KEY :");

// int keySize= sc.nextInt();

int keySize = Integer.parseInt(JOptionPane.showInputDialog(null,"ENTER THE SIZE OF KEY"));

int key[]=new int[keySize];

int keyB[][]=new int[keySize][8];

// System.out.print("ENTER THE PRIME NUMBERS :");

for(int i=0; i<keySize; i++){

//key[i]=sc.nextInt();

key[i]= Integer.parseInt(JOptionPane.showInputDialog(null,"ENTER PRIME


NUMBERS"));

int sum=0;

for(int i=0; i<keySize; i++){

sum=sum+key[i];

}
int sum1=sum;

int digitSum=0;

boolean flag=true;

while(flag){

int remainder=sum1%10;

digitSum=digitSum+remainder;

sum1=sum1/10;

if(sum1==0)

flag=false;

//----------------------------------------------------------------------------------------------------------

System.out.println("SUM OF PRIMES :"+sum+"\tSUM OF DIGITS :"+digitSum);

//----------------------------------------------------------------------------------------------------------

int random=sum%digitSum;

if(random==0)

random=9;

//----------------------------------------------------------------------------------------------------------

System.out.println("SPACING :"+random);

//----------------------------------------------------------------------------------------------------------

int extraLength=msg/(random+1);
//----------------------------------------------------------------------------------------------------------

System.out.println("extraLength :"+extraLength);

//----------------------------------------------------------------------------------------------------------

//CHAR to ASCII

for(int i=0;i<msg;i++)

// System.out.println(ASCIImsg[i]=(int)(msg.charAt(i))) ;

ASCIImsg[i]=arrsascii[i]; //change

// System.out.println(ASCIImsg[i]+"\t");

//key to binary

for(int i=0;i<keySize;i++){

if(key[i]>=128){

keyB[i][0]=1;

key[i]=key[i]-128;

else

keyB[i][0]=0;

if(key[i]>=64){

keyB[i][1]=1;

key[i]=key[i]-64;

else

keyB[i][1]=0;

if(key[i]>=32){

keyB[i][2]=1;
key[i]=key[i]-32;

else

keyB[i][2]=0;

if(key[i]>=16){

keyB[i][3]=1;

key[i]=key[i]-16;

else

keyB[i][3]=0;

if(key[i]>=8){

keyB[i][4]=1;

key[i]=key[i]-8;

else

keyB[i][4]=0;

if(key[i]>=4){

keyB[i][5]=1;

key[i]=key[i]-4;

else

keyB[i][5]=0;

if(key[i]>=2){

keyB[i][6]=1;

key[i]=key[i]-2;
}

else

keyB[i][6]=0;

if(key[i]>=1){

keyB[i][7]=1;

key[i]=key[i]-1;

else

keyB[i][7]=0;

//-----------------------------------------------------------------------------------------------------------

System.out.print("binary KEY :");

for(int j=0;j<8;j++){

System.out.print(keyB[i][j]);

System.out.println();

//-----------------------------------------------------------------------------------------------------------

//ASCII to BINARY

for(int i=0;i<msg;i++){

if(ASCIImsg[i]>=128){

binary[i][0]=1;

ASCIImsg[i]=ASCIImsg[i]-128;
}

else

binary[i][0]=0;

if(ASCIImsg[i]>=64){

binary[i][1]=1;

ASCIImsg[i]=ASCIImsg[i]-64;

else

binary[i][1]=0;

if(ASCIImsg[i]>=32){

binary[i][2]=1;

ASCIImsg[i]=ASCIImsg[i]-32;

else

binary[i][2]=0;

if(ASCIImsg[i]>=16){

binary[i][3]=1;

ASCIImsg[i]=ASCIImsg[i]-16;

else

binary[i][3]=0;

if(ASCIImsg[i]>=8){

binary[i][4]=1;

ASCIImsg[i]=ASCIImsg[i]-8;

}
else

binary[i][4]=0;

if(ASCIImsg[i]>=4){

binary[i][5]=1;

ASCIImsg[i]=ASCIImsg[i]-4;

else

binary[i][5]=0;

if(ASCIImsg[i]>=2){

binary[i][6]=1;

ASCIImsg[i]=ASCIImsg[i]-2;

else

binary[i][6]=0;

if(ASCIImsg[i]>=1){

binary[i][7]=1;

ASCIImsg[i]=ASCIImsg[i]-1;

else

binary[i][7]=0;

//-----------------------------------------------------------------------------------------------------------

System.out.print("binary message :");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

}
System.out.println();

//-----------------------------------------------------------------------------------------------------------

//XOR WITH KEY

for(int i=0;i<msg;i++){

for(int j=0;j<8;j++){

if(binary[i][j]==keyB[keySize-1][j]){

binary[i][j]=0;

else{

binary[i][j]=1;

//-----------------------------------------------------------------------------------------------------------

System.out.print("XOR WITH KEY :");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

System.out.println();

//-----------------------------------------------------------------------------------------------------------

//XOR WITH PRIMES


for(int i=0,k=0;i<msg;i++,k++){

for(int j=0;j<8;j++){

if(binary[i][j]==keyB[k][j]){

binary[i][j]=0;

else{

binary[i][j]=1;

if(k==keySize-2)

k=0;

//-----------------------------------------------------------------------------------------------------------

System.out.print("XOR WITH PRIMES :");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

System.out.println();

//-----------------------------------------------------------------------------------------------------------

//COMLEMENTING THE MESSAGE

for(int i=0;i<msg;i++){

for(int j=0;j<8;j++){
if(binary[i][j]==1)

binary[i][j]=0;

else

binary[i][j]=1;

//-----------------------------------------------------------------------------------------------------------

System.out.print("COMPLEMENT :");

for(int j=0;j<8;j++){

System.out.print(binary[i][j]);

System.out.println();

//-----------------------------------------------------------------------------------------------------------

//BINARY TO ASCII

int sum2;

for(int i=0;i<msg;i++){

sum2=0;

for(int j=0;j<8;j++){

if(binary[i][j]==1){

switch(j){

case 0:sum2=sum2+128;break;

case 1:sum2=sum2+64;break;

case 2:sum2=sum2+32;break;
case 3:sum2=sum2+16;break;

case 4:sum2=sum2+8;break;

case 5:sum2=sum2+4;break;

case 6:sum2=sum2+2;break;

case 7:sum2=sum2+1;break;

ASCIImsg[i] = sum2;

for(int i=0,j=0,k=random+1;i<msg;i++){

if(random==i){

random=random+k;

else

ASCIImsg1[j++]=ASCIImsg[i];

System.out.println();

//ASCIImsg1 CONTAINS THE DECRYPTED MESSAGE

for(int i=0;i<msg-extraLength;i++){
System.out.print(ASCIImsg1[i]+"\t");

//ASCIImsg1 SHOULD BE CONVERTED INTO CHARECTERS

System.out.println("\n");

char[] d=null;

int l= ASCIImsg1.length;

b5 = new byte[l];

for(int i=0;i<msg-extraLength;i++){

int k = ASCIImsg1[i];

char c = (char)k;

// char[i] = c

System.out.print(c+"\t");

byte b = (byte)c;

b5[i]=b;
}

System.out.println();

for(int k=0;k<b5.length;k++)

System.out.print(b5[k]);

//end of try

catch(Exception e)

System.out.println(e);

}
String file,dir,path,ms;

FileDialog fd2=new FileDialog(this,"SAVE",FileDialog.SAVE);

fd2.setVisible(true);

file=fd2.getFile();

dir=fd2.getDirectory();

path=dir+file;

try

FileOutputStream fos=new FileOutputStream(path);

for(int k=0;k<=b1.length;k++)

fos.write(b1[k]);

}
}catch(Exception e){}

catch(Exception e)

System.out.println(e);

try

Class.forName("com.mysql.jdbc.Driver");

Connection con4 = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st4 = con4.createStatement();

String sq = "delete from temp1";

st4.executeUpdate(sq);
}

catch (Exception eee)

eee.printStackTrace();

*/

/* misbehavior details */

if(ae.getSource()==mis)

new viewmis();

}
public static void main(String args[])

new sink();

Srvimp.java

import java.rmi.*;

import java.io.*;

import java.util.*;

import java.rmi.server.*;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.sql.*;

public class srvimp extends UnicastRemoteObject implements srvint

srvimp()throws RemoteException

}
public void getfile(String a,String b,StringBuffer s)throws RemoteException

String s1=new String(s);

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

PreparedStatement ps =con.prepareStatement("insert into file(nodename,filename,file)


values(?,?,?)");

ps.setString(1,a) ;

ps.setString(2,b) ;

ps.setString(3,s1) ;

ps.executeUpdate();

System.out.println("one file received from :"+a);

catch(Exception e)

System.out.println(e);

public StringBuffer viewfile(String v)throws RemoteException

{
String fname=null;

String fname1=null;

StringBuffer sb = new StringBuffer();

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file";

ResultSet rs=st.executeQuery(sql);

while(rs.next())

fname=rs.getString("filename");

sb.append(fname);

sb.append("\n");

catch(Exception e)

System.out.println(e);
}

return sb;

public StringBuffer misview()throws RemoteException

String fname=null,pas=null,node=null,cd=null,add=null;

StringBuffer sb = new StringBuffer();

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from misbehave";

ResultSet rs=st.executeQuery(sql);

while(rs.next())

fname=rs.getString("filename");

node=rs.getString("node");

cd=rs.getString("cdate");
add=rs.getString("address");

pas=rs.getString("pass");

sb.append("File Name:\t");

sb.append(fname);

sb.append("\n");

sb.append("Node Name:\t");

sb.append(node);

sb.append("\n");

sb.append("Date:\t");

sb.append(cd);

sb.append("\n");

sb.append("IP Address:\t");

sb.append(add);

sb.append("\n");

sb.append("Error Password:");

sb.append(pas);

sb.append("\n");

sb.append("****************************************");

sb.append("\n");

sb.append("\n");

}
}

catch(Exception e)

System.out.println(e);

return sb;

public StringBuffer details()throws RemoteException

String fname=null,nname=null,fid=null;

StringBuffer sb1=new StringBuffer();

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file";

ResultSet rs=st.executeQuery(sql);

while(rs.next())
{

fid=rs.getString("ID");

fname=rs.getString("filename");

nname=rs.getString("nodename");

sb1.append("File ID:");

sb1.append(fid);

sb1.append("\n");

sb1.append("File Name:");

sb1.append(fname);

sb1.append("\n");

sb1.append("File Received From:");

sb1.append(nname);

sb1.append("\n");

sb1.append("*********************");

sb1.append("\n");

catch(Exception e)

{
System.out.println(e);

return sb1;

public byte[] receivefile(String r)throws RemoteException

byte[] ba=null;

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file where filename='"+r+"'";

ResultSet rs=st.executeQuery(sql);
while(rs.next())

ba=rs.getBytes("file");

catch(Exception e){

System.out.println(e);

return ba;

public byte[] storefile(String x)throws RemoteException

{
byte[] ba1=null;

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbase","root","");

Statement st=con.createStatement();

String sql="select * from file where filename='"+x+"'";

ResultSet rs=st.executeQuery(sql);

while(rs.next())

ba1=rs.getBytes("file");

catch(Exception e){

System.out.println(e);

}
return ba1;

Srvint.java

import java.rmi.*;

import java.io.*;

public interface srvint extends Remote

public void getfile(String a,String b,StringBuffer s) throws RemoteException;

public StringBuffer viewfile(String v) throws RemoteException;

public StringBuffer misview() throws RemoteException;

public StringBuffer details() throws RemoteException;

public byte[] receivefile(String r) throws RemoteException;

public byte[] storefile(String n) throws RemoteException;

}
Viewmis.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.sql.*;

import java.rmi.*;

import javax.swing.border.*;

import org.jvnet.substance.*;

public class viewmis extends JFrame

private JTextArea box;

private JButton submit;

JScrollPane sa;

Container c;

/* static {

try {

SubstanceLookAndFeel

.setCurrentWatermark("org.jvnet.substance.watermark.SubstanceMagneticFieldWatermark");

SubstanceLookAndFeel
.setCurrentTheme("org.jvnet.substance.theme.SubstanceCharcoalTheme");

SubstanceLookAndFeel

.setCurrentGradientPainter("org.jvnet.substance.painter.SpecularGradientPainter");

SubstanceLookAndFeel

.setCurrentButtonShaper("org.jvnet.substance.button.BaseButtonShaper");

UIManager.setLookAndFeel(new SubstanceLookAndFeel());

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}*/

viewmis()

c=getContentPane();

c.setLayout(new FlowLayout());

box=new JTextArea(17,30);

sa = new JScrollPane(box);

sa.setBounds(20,20,150,150);

c.add(sa);
byte[] ba=null;

String fn=null;

//StringBuffer sb=null;

try {

String url = "rmi://127.0.0.1/storagenode";

srvint in = (srvint) Naming.lookup(url);

StringBuffer sb=(in.misview());

box.setText(sb.toString());

catch(Exception e){

System.out.println(e);

setTitle("Misbehavior Details");
this.setSize(350,350);

this.show();

public void itemStateChanged(ItemEvent ie)

repaint();

public static void main(String arg[])

viewmis b=new viewmis();

Userlogin.java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.util.*;

import javax.swing.event.*;

import java.sql.*;

import java.rmi.*;
import org.jvnet.substance.*;

public class userlogin extends JFrame implements ActionListener

JLabel fname;

JLabel file;

JLabel packet;

JLabel title,title1;

JLabel n1,n2;

JButton open;

JButton send;

JButton reset;

JTextField fname1;

JPasswordField file1;

JTextArea packet1;

String msg="";
Container c;

ImageIcon ii;

ImageIcon i2;

Socket c1;

public userlogin()

initializeComponent();

private void initializeComponent()

fname=new JLabel("<html><font color=#FFFFFF size=+1><strong>User


Name</strong></font>");

file=new JLabel("<html><font color=#FFFFFF


size=+1><strong>Password</strong></font>");
title=new JLabel("<html><font color=#FFFFFF size=+2><strong>User LOGIN
</strong></font>");

JLabel imageLabel1 = new JLabel();

ImageIcon v1 = new ImageIcon(this.getClass().getResource(""));

imageLabel1.setIcon(v1);

send=new JButton("LOGIN");

send.addActionListener(this);

fname1=new JTextField(10);

file1=new JPasswordField(10);
c=getContentPane();

c.setLayout(null);

c.add(fname);

c.add(file);

c.add(imageLabel1);

c.add(title);

c.add(send);

c.add(fname1);

c.add(file1);

c.setBackground(new java.awt.Color(100,90,150));

c.setLocation(300,300);

title.setBounds(75,30,700,50);
imageLabel1.setBounds(450,100,350,250);

fname.setBounds(30,100,250,25);

file.setBounds(30,150,250,25);

send.setBounds(150,215,75,25);

fname1.setBounds(150,100,150,25);

file1.setBounds(150,150,150,25);

setSize(350,300);

setVisible(true);

setTitle("User Login");

public void actionPerformed(ActionEvent ae)


{

if(ae.getSource()==send)

if(fname1.getText().equals(""))

JOptionPane.showMessageDialog(null,"Enter UserName");

fname1.requestFocus();

else if(file1.getText().equals(""))

JOptionPane.showMessageDialog(null,"Password");

file1.requestFocus();

else if((fname1.getText().equals("san"))&&(file1.getText().equals("san")))

new sink();
this.dispose();

else

JOptionPane.showMessageDialog(null,"Invalid UserName and Password");

fname1.requestFocus();

public static void main(String args[])

new userlogin();

You might also like