PHP - Enviar contraseña con hash usando ajax

   
Vista:

Enviar contraseña con hash usando ajax

Publicado por Victor Anibal (2 intervenciones) el 23/02/2018 15:58:00
Estoy usando ajax con jquery para enviar la información del formulario a mi php para procesarla con el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
showCargar();
var url = "../php/user.php"; // El script a dónde se realizará la petición.
 
$.ajax({
    type: "POST",
    url: url,
    data: {
        evento: 2,
        typeDoc: $("#cmbTipoDoc").val(),
        doc: $("#txtIdentification").val(),
        name: $("#txtName").val(),
        lastName: $("#txtLastName").val(),
        email: $("#txtEmail").val(),
        pass: $("#password").val();
        active: $("#myonoffswitch4").val()
    },
    dataType: "json",
    success: function (respuesta) {
        hideCargar();
        alertify.success(respuesta.data);
    },
    fail: function () {
        hideCargar();
        mensaje = "Error al insertar el usuario";
        alertify.error(mensaje);
    },
    error: function () {
        hideCargar();
        mensaje = "Error recibiendo respuesta evento Cargar Resumen";
        alertify.error(mensaje);
    }
});

Este es el formulario php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<div class="row">
    <div class="col-lg-12">
        <div class="panel panel-default">
            <!-- /.panel-heading -->
            <div class="panel-body">
                <div class="row-fluid">
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Tipo documento</label><br>
                            <select id="cmbTipoDoc" class="selectpicker show-tick validar" title="Seleccione Tipo Documento" tabindex="1" autofocus>
                                <option value="CC" data-subtext="(CC)" >Cédula Ciudadanía</option>
                                <option value="TI" data-subtext="(TI)">Tarjeta Identidad</option>
                                <option value="CE" data-subtext="(CE)">Cédula Extranjería</option>
                            </select>
 
                        </div>
                    </div>
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Identificación</label>
                            <input type="number" name="txtIdentification" id="txtIdentification" class="form-control" placeholder="Identificación" maxlength="15" tabindex="2"/>
                        </div>
                    </div>
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Nombres</label>
                            <input type="text" name="txtName" id="txtName" class="form-control" placeholder="Nombres" onkeyup="this.value = this.value.toUpperCase()"  maxlength="45" tabindex="3"/>
                        </div>
                    </div>
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Apellidos</label>
                            <input type="text" name="txtLastName" id="txtLastName" class="form-control" placeholder="Apellidos" onkeyup="this.value = this.value.toUpperCase()"  maxlength="45" tabindex="4"/>
                        </div>
                    </div>
                </div>
                <div class="row-fluid">
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Correo</label>
                            <input type="email" name="txtEmail" id="txtEmail" class="form-control" placeholder="Direccion de Correo" maxlength="100" tabindex="5"/>
                        </div>
                    </div>
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Contraseña</label>
                            <input type="password" name="txtPassword" id="txtPassword" class="form-control" placeholder="Password" maxlength="45" tabindex="6"/>
                        </div>
                        <div id="passwordHash"></div>
                    </div>
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Confirmar Contraseña</label>
                            <input type="password" name="txtConfirmPassword" id="txtConfirmPassword" class="form-control" placeholder="Confirmar Password" maxlength="45" tabindex="7"/>
                        </div>
                    </div>
                    <div class="col-lg-3">
                        <div class="form-group">
                            <label class="control-label">Estado</label><br>
                            <input type="checkbox" name="onoffswitch4" class="onoffswitch4-checkbox" id="myonoffswitch4" checked>
                            <label class="onoffswitch4-label" for="myonoffswitch4">
                                <span class="onoffswitch4-inner"></span>
                                <span class="onoffswitch4-switch"></span>
                            </label>
                        </div>
                    </div>
                </div>
                <div class="row-fluid">
                    <div class="col-lg-2">
                        <br>
                        <button class="btn btn-danger" id="BtnCreateUser" name="BtnCreateUser" tabindex="9">Crear usuario (F2)</button>
                    </div>
                    <div class="col-lg-1">
                        <br>
                        <button class="btn btn-default" id="btn_refrescar" tabindex="10"><li class="fa fa-refresh"></li></button>
                    </div>
                </div>
            </div>
            <!-- /.panel-body -->
        </div>
        <div class="panel panel-default" id="pnlResumen">
            <div class="panel-heading text-center"><b>Lista de usuarios</b></div>
            <div class="panel-body">
                <div class="row-fluid">
                    <div class="col-lg-12 text-center">
                        <div class="panel panel-default">
                            <table class="table table-responsive table-hover table-striped" id="tbl_resumen"></table>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- /.panel -->
    </div>
    <!-- /.col-lg-12 -->
</div>

Si lo uso así, la contraseña va en texto plano, quiero enviarla usando bcrypt con la función password_hash() de php.

¿Alguen podría colaborarme como hacer para enviar la contraseña con hash y no con texto plano sin utilizar sha1 o md5 sino bcryp que ya viene desde php 5.5 como librería?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Enviar contraseña con hash usando ajax

Publicado por Alejandro (330 intervenciones) el 23/02/2018 16:17:28
Primero entiende el funcionamiento

El cliente envia una peticion al servidor, el servidor procesa la peticion y devuelve una respuesta.

Si quieres enviar un hash que es generado en php es necesario que php te lo halla devuelto primero

Asi pues necesitas:
1. Enviar la contraseña "sin encriptar".
2. PHP la encripta y te devuelve el resultado.
3. Ya tienes la contraseña encriptada para volver a enviarla en tu formulario.
(¬_¬ ¡) no tiene sentido verdad.

Si queres enviar una contraseña encriptada necesitas un algoritmo en el cliente que la encripte asi pues por ejemplo si estubiera en js, cualquiera puede descargar tu fichero js y analizar el algoritmo para quiza aplicar ingenieria inversa.

¿Cual es la solucion para evitar ser victima de un sniffer? Respuesta HTTPS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enviar contraseña con hash usando ajax

Publicado por Victor Anibal (2 intervenciones) el 23/02/2018 16:25:22
Gracias por la respuesta...

¿Podrías guiarme sobre como puedo buscar información sobre esto?

Te lo agradecería
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad