Desemcriptar contraseña en sql

Iniciado por Libra_18, 7 Diciembre 2011, 01:44 AM

0 Miembros y 1 Visitante están viendo este tema.

Libra_18

Tengo la siguiente función en sql, que me permite en cripta  una contraseña... pero ahora quisiera saber cuál es el algoritmo, que me permita desemcriptar la  contraseña


 
ALTER FUNCTION [dbo].[F_ENCRIPTA] ( @pvCadena   Varchar(20),
                                 @pnEncripta Integer )
Returns Varchar(20)
As
Begin
   Declare @vReturn     Varchar(20)
   Declare @vCadena    Varchar(20)
   Declare @vCad       Varchar(30)
   Declare @vCrip       Varchar(30)
   Declare @nLen       Numeric(5,0)
   Declare @nContador Integer

   Set @vCadena   = LTrim(RTrim(@pvCadena))
   Set @vCrip     = ''
   Set @nLen      = Len(@vCadena) + 1
   Set @nContador = 1

   While @nContador <= @nLen - 1
   Begin   
      Set @vCad = Substring(@vCadena,@nContador,1)
      If @pnEncripta > 0
         Set @vCad = Char(Ascii(@vCad) + (@nLen) - @nContador)
      Else
         Set @vCad = Char(Ascii(@vCad) - (@nLen) + @nContador)

      Set @vCrip     = @vCrip + @vCad
      Set @nContador = @nContador + 1
   End

   Set @vReturn = @vCrip
 
   Set @vReturn = IsNull(@vReturn,'')
   
   Return(@vReturn)
End

mi contraseña es 123
pero en mi base de datos   me sale 444 como la desemcripto teniendo el siguiente algoritmo de cifrado

Novlucker

¿Has intentado comprender el algoritmo? Es una pequeña variación del cifrado César.

No se para que se utilizará esa función, espero que no sea para las contraseñas, pero en ese caso, es del tipo de funciones que es conveniente tenerlas cifradas :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Shell Root

Pero pusiste 123 como cadena, pero falta el otro parámetro. Cual es? (Es para realizar una prueba)
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Novlucker

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

<<<-Basura->>>

Bueno, es una opción, pero no la mas eficaz, Fuerza bruta, ejemplo:
Tu contraseña: 123
Se almacena como 444

Digamos que todas las contraseñas son de 3 dígitos y todos son números para no complicarnos.

000 -> primera contaseña, la pasamos por el algoritmo y dos da un VALOR,

VALOR lo comparamos con la contraseña almacenada, SI son IGUALES es la contraseña, obvio que sino NO! jeje

muchos dirán pero es una tontera ya que si hay miles de contraseñas en la base de datos y hacerle eso a todas, es perder el tiempo....

Podríamos programar un sistema maso menos inteligente jeje..
digamos que Si llego a la contaseña 123 y comparo y dio igual valor "444", almacenamos el valor "444" y lo unimos  a 123, es decir que si nuestro programa encuentra en la base de datos otro "444", primero ira a revisar si fue encontrado anterior mente y sino aplicara el método de FBruta..

muchos usuarios utilizan las contraseñas muy parecidas o muy simples, que casi asta se vuelve repetitivo...
<<<--Basura-->>>

Shell Root

Nah, pero si tenemos el source del encrypt siempre se puede realizar un decrypt, no crees?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

<<<-Basura->>>

Lo que te dije era una opción nada mas... jeje
<<<--Basura-->>>