Aniadido cifrado

This commit is contained in:
Guillermo Roche 2020-02-11 14:08:00 +01:00
parent a1e1e6f2fa
commit 7c246a898d
3 changed files with 30 additions and 28 deletions

View File

@ -5,5 +5,6 @@
<classpathentry kind="lib" path="gson-2.8.6-javadoc.jar"/> <classpathentry kind="lib" path="gson-2.8.6-javadoc.jar"/>
<classpathentry kind="lib" path="gson-2.8.6-sources.jar"/> <classpathentry kind="lib" path="gson-2.8.6-sources.jar"/>
<classpathentry kind="lib" path="gson-2.8.6.jar"/> <classpathentry kind="lib" path="gson-2.8.6.jar"/>
<classpathentry kind="lib" path="cifrado.jar"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

BIN
cifrado.jar Normal file

Binary file not shown.

View File

@ -8,6 +8,7 @@ import com.google.gson.Gson;
public class ComunacacionJugador extends Thread{ public class ComunacacionJugador extends Thread{
Socket socket; Socket socket;
static String pass="soy segura";
public ComunacacionJugador(Socket socket) { public ComunacacionJugador(Socket socket) {
this.socket = socket; this.socket = socket;
this.start(); this.start();
@ -18,23 +19,23 @@ public class ComunacacionJugador extends Thread{
Gson gson = new Gson(); Gson gson = new Gson();
BufferedReader bufferEntrada = new BufferedReader(new InputStreamReader(this.socket.getInputStream())); BufferedReader bufferEntrada = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
PrintWriter bufferSalida = new PrintWriter(new OutputStreamWriter(this.socket.getOutputStream()),true); PrintWriter bufferSalida = new PrintWriter(new OutputStreamWriter(this.socket.getOutputStream()),true);
bufferSalida.println(gson.toJson(Servidor.mostrarSalas()+"fin")); bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.mostrarSalas()+"fin"), ComunacacionJugador.pass));
int sala = Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class))-1; int sala = Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class))-1;
if(Servidor.addJugador(sala, this.socket)) { if(Servidor.addJugador(sala, this.socket)) {
bufferSalida.println(gson.toJson("Has entrado en la sala")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Has entrado en la sala"), ComunacacionJugador.pass));
switch(Servidor.determinarJuego(sala)){ switch(Servidor.determinarJuego(sala)){
case Servidor.juego4: case Servidor.juego4:
sala -= Servidor.salas3.size(); sala -= Servidor.salas3.size();
bufferSalida.println(gson.toJson("4")); bufferSalida.println(Cifrado.cifrar(gson.toJson("4"), ComunacacionJugador.pass));
partida4(bufferEntrada, bufferSalida, sala); partida4(bufferEntrada, bufferSalida, sala);
break; break;
case Servidor.juego3: case Servidor.juego3:
bufferSalida.println(gson.toJson("3")); bufferSalida.println(Cifrado.cifrar(gson.toJson("3"), ComunacacionJugador.pass));
partida3(bufferEntrada, bufferSalida, sala); partida3(bufferEntrada, bufferSalida, sala);
break; break;
} }
}else { }else {
bufferSalida.println(gson.toJson("Error al entrar en la sala")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Error al entrar en la sala"), ComunacacionJugador.pass));
socket.close(); socket.close();
return; return;
} }
@ -50,15 +51,15 @@ public class ComunacacionJugador extends Thread{
boolean continuar = true; boolean continuar = true;
int jugador = 2; int jugador = 2;
if(Servidor.salas3.get(sala).getJugador1().equals(this.socket)) { if(Servidor.salas3.get(sala).getJugador1().equals(this.socket)) {
bufferSalida.println(gson.toJson("Esperando al segundo jugador")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Esperando al segundo jugador"), ComunacacionJugador.pass));
synchronized (this.socket) { synchronized (this.socket) {
this.socket.wait(); this.socket.wait();
} }
jugador = 1; jugador = 1;
bufferSalida.println(gson.toJson("Primero")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Primero"), ComunacacionJugador.pass));
bufferSalida.println(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero())); bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero()), ComunacacionJugador.pass));
Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)), Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),
Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)),jugador); Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador);
/*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero, /*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero,
y viceversa, ya que usamos los sockets como mutex*/ y viceversa, ya que usamos los sockets como mutex*/
synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) {
@ -68,8 +69,8 @@ public class ComunacacionJugador extends Thread{
this.socket.wait(); this.socket.wait();
} }
}else { }else {
bufferSalida.println(gson.toJson("Iniciando partida")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Iniciando partida"), ComunacacionJugador.pass));
bufferSalida.println(gson.toJson("Segundo")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Segundo"), ComunacacionJugador.pass));
synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) {
Servidor.salas3.get(sala).jugadores[jugador%2].notify(); Servidor.salas3.get(sala).jugadores[jugador%2].notify();
} }
@ -84,19 +85,19 @@ public class ComunacacionJugador extends Thread{
if(finalJuego != 0) { if(finalJuego != 0) {
continuar = false; continuar = false;
if(finalJuego == jugador) { if(finalJuego == jugador) {
bufferSalida.println(gson.toJson("v")); bufferSalida.println(Cifrado.cifrar(gson.toJson("v"), ComunacacionJugador.pass));
Servidor.salas3.remove(sala); Servidor.salas3.remove(sala);
}else { }else {
bufferSalida.println(gson.toJson("f")); bufferSalida.println(Cifrado.cifrar(gson.toJson("f"), ComunacacionJugador.pass));
synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) {
Servidor.salas3.get(sala).jugadores[jugador%2].notify(); Servidor.salas3.get(sala).jugadores[jugador%2].notify();
} }
} }
}else { }else {
bufferSalida.println(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero())); bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero()), ComunacacionJugador.pass));
Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)), Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),
Integer.parseInt(bufferEntrada.readLine()),jugador); Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador);
synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) {
Servidor.salas3.get(sala).jugadores[jugador%2].notify(); Servidor.salas3.get(sala).jugadores[jugador%2].notify();
} }
@ -114,14 +115,14 @@ public class ComunacacionJugador extends Thread{
boolean continuar = true; boolean continuar = true;
int jugador = 2; int jugador = 2;
if(Servidor.salas4.get(sala).getJugador1().equals(this.socket)) { if(Servidor.salas4.get(sala).getJugador1().equals(this.socket)) {
bufferSalida.println(gson.toJson("Esperando al segundo jugador")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Esperando al segundo jugador"), ComunacacionJugador.pass));
synchronized (this.socket) { synchronized (this.socket) {
this.socket.wait(); this.socket.wait();
} }
jugador = 1; jugador = 1;
bufferSalida.println(gson.toJson("Primero")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Primero"), ComunacacionJugador.pass));
bufferSalida.println(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero())); bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero()), ComunacacionJugador.pass));
Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)),jugador); Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador);
/*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero, /*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero,
y viceversa, ya que usamos los sockets como mutex*/ y viceversa, ya que usamos los sockets como mutex*/
synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) {
@ -131,8 +132,8 @@ public class ComunacacionJugador extends Thread{
this.socket.wait(); this.socket.wait();
} }
}else { }else {
bufferSalida.println(gson.toJson("Iniciando partida")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Iniciando partida"), ComunacacionJugador.pass));
bufferSalida.println(gson.toJson("Segundo")); bufferSalida.println(Cifrado.cifrar(gson.toJson("Segundo"), ComunacacionJugador.pass));
synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) {
Servidor.salas4.get(sala).jugadores[jugador%2].notify(); Servidor.salas4.get(sala).jugadores[jugador%2].notify();
} }
@ -147,17 +148,17 @@ public class ComunacacionJugador extends Thread{
if(finalJuego != 0) { if(finalJuego != 0) {
continuar = false; continuar = false;
if(finalJuego == jugador) { if(finalJuego == jugador) {
bufferSalida.println(gson.toJson("v")); bufferSalida.println(Cifrado.cifrar(gson.toJson("v"), ComunacacionJugador.pass));
Servidor.salas4.remove(sala); Servidor.salas4.remove(sala);
}else { }else {
bufferSalida.println(gson.toJson("f")); bufferSalida.println(Cifrado.cifrar(gson.toJson("f"), ComunacacionJugador.pass));
synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) {
Servidor.salas4.get(sala).jugadores[jugador%2].notify(); Servidor.salas4.get(sala).jugadores[jugador%2].notify();
} }
} }
}else { }else {
bufferSalida.println(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero())); bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero()), ComunacacionJugador.pass));
Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)),jugador); Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador);
synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) {
Servidor.salas4.get(sala).jugadores[jugador%2].notify(); Servidor.salas4.get(sala).jugadores[jugador%2].notify();
} }