Skip to content

Commit

Permalink
Subo avance de js, y mock de respuesta sel servidor de hashes inversos
Browse files Browse the repository at this point in the history
  • Loading branch information
dsbarrionuevo committed Jul 31, 2017
1 parent c796409 commit 34b9ce4
Show file tree
Hide file tree
Showing 5 changed files with 157 additions and 12 deletions.
15 changes: 13 additions & 2 deletions css/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,21 @@
min-width: 700px;
}
.explicacion{
color:#888;
color:#888!important;
font-weight: lighter;
transition: color .2s;
}
.explicacion:hover{
color:#222;
color:#222!important;
}
.mas-info{
padding:5px;
padding-right: 30px;
background-color:rgba(0,0,0,0.02);
border-color: rgba(0,0,0,0.04);
opacity: 0.9;
color:#777;
}
#formularios{
margin-bottom: 15px;
}
18 changes: 18 additions & 0 deletions js/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
(function () {
$(document).ready(function () {
$("#formulario").submit(function (evt) {
evt.preventDefault();
var data = {
hash: $("#txtHash").val().trim(),
algoritmo: $("#slcAlgoritmos").val().trim(),
};
$.ajax({
url: "src/cracker.php",
type: "post",
data: {}
}).done(function (respuesta) {
console.log(respuesta);
});
});
});
})();
42 changes: 42 additions & 0 deletions src/cracker.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

require_once '../config.php';

// Funcion para hacer peticiones con cURL
function hacer_peticion($url_recurso) {
$datos = null;
// Inicio curl
$sesion = curl_init();
curl_setopt($sesion, CURLOPT_URL, $url_recurso);
curl_setopt($sesion, CURLOPT_HTTPGET, true);
curl_setopt($sesion, CURLOPT_HEADER, false);
curl_setopt($sesion, CURLOPT_RETURNTRANSFER, true);

// Ejecuto
$resultado = curl_exec($sesion);

// Cierro curl
curl_close($sesion);

// Proceso la respuesta
if ($resultado === false) {
throw new Exception("Error al hacer petición.", 0, null);
}
$resultado = json_decode($resultado);
if (!property_exists($resultado, "estado")) {
// Error...
throw new Exception("Respuesta con formato no reconocido.", 0, null);
} else {
$estado = $resultado->estado;
if ($estado === "ok") {
$datos = $resultado->datos;
} else {
throw new Exception($resultado->error->descripcion, $resultado->error->id, null);
}
}
return $datos;
}

// URL del recurso del Servidor de Hashes Inversos
$url_recurso = "http://localhost/labsis_hash_cracker_web/src/mockup_respuesta_shi.php";
$respuesta = hacer_peticion($url_recurso);
39 changes: 39 additions & 0 deletions src/mockup_respuesta_shi.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

// Poner en true en caso de que no se produzco un error.
$error = false;
// Completar con los detalles del error ocurrido.
$objeto_error = array("id" => -1, "descripcion" => "");
// Completar con los datos obtenidos de ejecutar el programa java.
$objeto_datos = [];

try {

// Todo el procesamiento: ejecutar java y procesar respuesta aqui...
// ...
// Obtengo parametros de entrada:

$hash = filter_input(INPUT_POST, "hash");
$algoritmo = filter_input(INPUT_POST, "algoritmo");

// Armo comando con parametros de entrada.
$comando = "java ...";
exec($comando);
// Fin del procesamiento.
} catch (Exception $ex) {
$error = true;
$objeto_error = array("id" => 1, "descripcion" => "Error: " . $ex->getMessage());
}

// Creo respuesta como array, al final sera convertida en json.
$respuesta = array(
"estado" => ($error === true) ? "error" : "ok"
);

if ($error === false) {
$respuesta["datos"] = $objeto_datos;
} else {
$respuesta["error"] = $objeto_error;
}

echo json_encode($respuesta);
55 changes: 45 additions & 10 deletions tmpl/index.tmpl.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<script src="<?php echo $WEB_PATH; ?>js/lib/jquery/jquery.min.js" ></script>
<script src="<?php echo $WEB_PATH; ?>css/lib/bootstrap/js/bootstrap.min.js" ></script>
<link href="<?php echo $WEB_PATH; ?>css/index.css" rel="stylesheet"/>
<script src="<?php echo $WEB_PATH; ?>js/index.js" ></script>
</head>
<body>
<main class="container">
Expand All @@ -17,11 +18,31 @@
<h1>
Hash Cracker
</h1>
<p class="explicacion">
Ingresa una clave hasheada en el campo de texto, selecciona el algoritmo de hash utilizado (o selecciona "Detectar automáticamente"), y presiona en "Buscar" para obtener la clave en texto plano.
</p>
<div class="explicacion">
<p>
¿Cómo usarlo?
</p>
<ol>
<li>
Ingresa una clave hasheada en el campo de texto
</li>
<li>
Selecciona el algoritmo de hash utilizado (o selecciona "Detectar automáticamente").
</li>
<li>
Presiona el botón "Buscar" y espera unos seungos para obtener la clave en texto plano.
</li>
</ol>
<div class="alert alert-info alert-dismissible mas-info">
<p>
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
Las claves almacenadas tiene una longitud máxima de 12 caracteres. Si la clave que intentas buscar posee más caracteres, no será posible obtenerla.
</p>
</div>
</div>
</div>
<form class="form-inline">
<form class="form-inline" id='formulario'>
<div class="form-group">
<input type="text" class="form-control" id="txtHash" placeholder="Ingresa la clave hasheada aquí">
</div>
Expand Down Expand Up @@ -50,15 +71,29 @@
</option>
</select>
</div>
<button type="button" class="btn btn-primary" id="btnBuscar">
<button type="submit" class="btn btn-primary" id="btnBuscar">
Buscar
</button>
</form>
<div class="resultados">
<table>
<tr>

</tr>
<div class="resultados hidden">
<div class="alert alert-warning hidden" id='mensajeResultados'>
No se han encontrado reusltados para el hash '';
</div>
<table class="table hidden">
<thead>
<tr>
<th>
Texto plano
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
Resultado
</td>
</tr>
</tbody>
</table>
</div>
</div>
Expand Down

0 comments on commit 34b9ce4

Please sign in to comment.