Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Contraseñas en la base de datos  (Visto 2504 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline Riperto Posteado: January 23, 2018, 09:34:01 PM | Modificado: January 26, 2018, 02:54:47 PM by RASTAA

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy
Hola uso estas files http://tuservermu.com.ve/index.php?topic=475.0 Mu Emu

Queria mejorar la seguridad de las contraseñas en la base de datos y para ello iba a usar procedimientos almacenados de hasheo, etc. Asi cuando el usuario hace la cuenta, se guarda una contraseña encriptada de la misma

El problema que tengo es que no encuentro el procedimiento almacenado donde llama a el usuario y la contraseña para el logueo al servidor. Ahi queria desencriptar las contraseñas para que ingrese el jugador con la contraseña que ingreso.

Desde ya muchas gracias


Offline splound #1 Posteado: January 23, 2018, 10:10:49 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 156
  • Gracias recibida: 976
  • ve
En el modulo de registro encripta la contraseña con md5 y en el servidor habilita la encriptacion md5 en el join server.

Gracias:


Offline Riperto #2 Posteado: January 23, 2018, 11:42:36 PM | Modificado: January 23, 2018, 11:45:48 PM by Riperto

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy
En el modulo de registro encripta la contraseña con md5 y en el servidor habilita la encriptacion md5 en el join server.

Gracias por la respuesta pero no tengo idea de como se hace eso :(


Edito: Encontre donde cambiar en el servidor en el join server pero no se como cambiarlo en el modulo de registro. Como no encontre procedure para crear cuentas, hice uno casero


Offline inax123 #3 Posteado: January 24, 2018, 05:10:37 AM

  • 0 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 197
  • Gracias recibida: 1754
  • ar
En el modulo de registro encripta la contraseña con md5 y en el servidor habilita la encriptacion md5 en el join server.

Gracias por la respuesta pero no tengo idea de como se hace eso :(


Edito: Encontre donde cambiar en el servidor en el join server pero no se como cambiarlo en el modulo de registro. Como no encontre procedure para crear cuentas, hice uno casero

Queres añadir seguridad y haces un módulo casero? Muy mal.
Va. A menos que seas un desarrollador profesional. Pero no te recomiendo utilizar cosas caseras.


Offline Riperto #4 Posteado: January 24, 2018, 02:37:59 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy
En el modulo de registro encripta la contraseña con md5 y en el servidor habilita la encriptacion md5 en el join server.

Gracias por la respuesta pero no tengo idea de como se hace eso :(


Edito: Encontre donde cambiar en el servidor en el join server pero no se como cambiarlo en el modulo de registro. Como no encontre procedure para crear cuentas, hice uno casero

Queres añadir seguridad y haces un módulo casero? Muy mal.
Va. A menos que seas un desarrollador profesional. Pero no te recomiendo utilizar cosas caseras.

Tu post no resuelve mi problema, gracias igual


Offline Riperto #5 Posteado: January 24, 2018, 04:42:02 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy
Estuve tratando de hashear la contraseña pero ninguno de los resultados obtenidos concuerda con el MD5 del JoinServer pues indica que la contraseña es incorrecta

Este es el que viene con los files

UFN_MD5_ENCODE_VALUE   

USE [MuOnline]
GO
/****** Object:  UserDefinedFunction [dbo].[UFN_MD5_ENCODEVALUE]    Script Date: 01/24/2018 18:37:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--
-- Definition for user-defined function UFN_MD5_ENCODEVALUE :
--

/****** ??:  ??????? dbo.UFN_MD5_ENCODEVALUE    ????: 2006-11-8 21:18:35 ******/

-- ??? : UFN_MD5_ENCODEVALUE()
-- ?? : ?????? ???? ???? MD5 ?? ??
CREATE FUNCTION [dbo].[UFN_MD5_ENCODEVALUE]
(
   @btInStr      VARCHAR(10),
   @btInStrIndex      VARCHAR(10)
)
RETURNS BINARY(16)
AS 
BEGIN
   DECLARE   @btOutVal   BINARY(16)

   EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT

   RETURN    @btOutVal
END

Estos los copie de otra guia

 SP_MD5_ENCODE_VALUE

CREATE PROCEDURE SP_MD5_ENCODE_VALUE

@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10)

--RETURNS BINARY(16)
--Created By WebZen
--Adapted By [CzF]Deathway
AS
BEGIN
DECLARE @btOutVal BINARY(16)

EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT
UPDATE MEMB_INFO SET memb__pwd = @btOutVal WHERE memb___id = @btInStrIndex
RETURN @btOutVal
END

GO


Encript

CREATE PROCEDURE [dbo].[Encript]
@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10)
AS
BEGIN
DECLARE @btOutVal BINARY(16)
EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT
UPDATE MEMB_INFO SET memb__pwd = @btOutVal WHERE memb___id = @btInStrIndex
END

GO


Encripta

CREATE PROCEDURE [dbo].[Encripta]
@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10)
AS

BEGIN
DECLARE @btOutVal BINARY(16)

EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT

UPDATE MEMB_INFO SET memb__pwd = @btOutVal WHERE memb___id = @btInStrIndex
END

GO


Cassandra_MD5


/****** Object: Stored Procedure dbo.Cassandra_MD5 Script Date: 03/09/2006 22.53.35 ******/
CREATE PROCEDURE [dbo].[Cassandra_MD5]
@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10)
AS
BEGIN
DECLARE @btOutVal BINARY(16)
EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT
SELECT @btOutVal
END



GO

Este es nativo de SQLSERVER

SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', 'password'),2)


Offline Riperto #6 Posteado: January 25, 2018, 08:45:13 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy

Offline DeilanSasame #7 Posteado: January 25, 2018, 08:48:03 PM

  • 3D Maker
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 310
  • Gracias recibida: 1408
  • ar
si la base de dato tiene abilitado la contraseña con MD5 tenes que usar un conversor a Md5
pasaral de UTF(escritura normal) a MD5 y copiar lo que te da en la base de dato como contraseña


Offline Riperto #8 Posteado: January 25, 2018, 08:49:38 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy
si la base de dato tiene abilitado la contraseña con MD5 tenes que usar un conversor a Md5
pasaral de UTF(escritura normal) a MD5 y copiar lo que te da en la base de dato como contraseña

Eso es lo que hago pero me dice contraseña incorrecta


Offline DeilanSasame #9 Posteado: January 25, 2018, 08:52:50 PM

  • 3D Maker
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 310
  • Gracias recibida: 1408
  • ar
si la base de dato tiene abilitado la contraseña con MD5 tenes que usar un conversor a Md5
pasaral de UTF(escritura normal) a MD5 y copiar lo que te da en la base de dato como contraseña

Eso es lo que hago pero me dice contraseña incorrecta

intentaste ponerla invertida ??


Offline Riperto #10 Posteado: January 25, 2018, 09:00:41 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy
si la base de dato tiene abilitado la contraseña con MD5 tenes que usar un conversor a Md5
pasaral de UTF(escritura normal) a MD5 y copiar lo que te da en la base de dato como contraseña

Eso es lo que hago pero me dice contraseña incorrecta

intentaste ponerla invertida ??

Como entiendo yo que funciona es asi:

1) El usuario escribe su contraseña

2) La base de datos lo transforma a MD5 y la guarda

3) El usuario escribe su contraseña en el cliente para entrar al juego

4) El joinserver transforma la contraseña del usuario y la compara con la contraseña guardada en la base de datos, si es igual entra

El error que tengo es que me dice que no coinciden las contraseñas y no entiendo bien a que te referis con ponerla invertida


Offline DeilanSasame #11 Posteado: January 25, 2018, 09:08:11 PM

  • 3D Maker
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 310
  • Gracias recibida: 1408
  • ar
si la base de dato tiene abilitado la contraseña con MD5 tenes que usar un conversor a Md5
pasaral de UTF(escritura normal) a MD5 y copiar lo que te da en la base de dato como contraseña

Eso es lo que hago pero me dice contraseña incorrecta

intentaste ponerla invertida ??

Como entiendo yo que funciona es asi:

1) El usuario escribe su contraseña

2) La base de datos lo transforma a MD5 y la guarda

3) El usuario escribe su contraseña en el cliente para entrar al juego

4) El joinserver transforma la contraseña del usuario y la compara con la contraseña guardada en la base de datos, si es igual entra

El error que tengo es que me dice que no coinciden las contraseñas y no entiendo bien a que te referis con ponerla invertida

aveses en las data base SQl al usar MD5, la Contraseña se lee al reves
Ejemplo:
Pass MD5= 123456
Pass Db MD5 = 654321

es en raros casos pero aveses pasa


Offline Riperto #12 Posteado: January 26, 2018, 01:46:07 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • uy
Bueno, solucione el problema.

El tema era el siguiente, las funciones que usaba el server eran las que traia la base de datos.
Una vez que se encriptaban yo guardaba esos valores.

Luego de mucho tiempo, usando mis conocimientos en base de datos y explorando las funciones guardadas, descubri que el encriptamiento daba como resultado una variable del tipo binary(16), pero que las contraseñas se guardaban en varchar(). Esto en la base de datos no genera conflicto ya que una hereda de la otra, pero se ve que al comparar el tipo de dato esto da un error. Por eso me daba que las contraseñas no erran correctas cuando en realidad si lo eran.

Tan solo cambie el tipo de dato en la columna de contraseñas a binary(16) y eso arreglo todo


Ahora me doy un Gracias a mi mismo(?)

Gracias:


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
9 Replies
3760 Views
Last post September 04, 2016, 09:19:42 PM
by Odisk
2 Replies
2127 Views
Last post July 15, 2018, 02:35:36 PM
by Hessen
1 Replies
2156 Views
Last post May 22, 2018, 09:51:10 PM
by xXSiniestroXx
6 Replies
359 Views
Last post February 24, 2021, 05:46:20 PM
by cret
4 Replies
529 Views
Last post May 14, 2021, 06:58:18 PM
by punkjaja