Foros del Web » Programando para Internet » ASPX (.net) »

Encriptar y desencriptar pass con c#

Estas en el tema de Encriptar y desencriptar pass con c# en el foro de ASPX (.net) en Foros del Web. Hola... Necesito encriptar un password y guardarlo en una bs y luego desencriptarlo... Como hago para trabajar con estos? Alguna idea? Saludos!...
  #1 (permalink)  
Antiguo 18/08/2009, 13:03
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Encriptar y desencriptar pass con c#

Hola...

Necesito encriptar un password y guardarlo en una bs y luego desencriptarlo...

Como hago para trabajar con estos?

Alguna idea?
Saludos!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #2 (permalink)  
Antiguo 18/08/2009, 13:52
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Encriptar y desencriptar pass con c#

Hola encontre una forma de hacerlo... con una funcion hash

Como C# trae la funcion hash por defecto, es muy facil desencriptar el pass...

Alguien sabe otra?

Saludos!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #3 (permalink)  
Antiguo 18/08/2009, 14:05
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Encriptar y desencriptar pass con c#

Ojo calcular un Hash no es encriptar, el hash por definicion no tiene vuelta atras una vez que calculas el valor hash de entrada no hay forma de hacer lo opuesto.

Que no es lo mismo que comparar un hash almacenado con un hash calculado que hacen las mayorias de los scripts y codigos en el mundo.

PD: Es como la 10 vez que discuto algo asi , pero es bueno saberlo


------------------

Adicionalmente

En todo caso necesitas utilizar el namespace System.Security.Cryptography y usar uno de los tantos CryptoProviders y usar un CryptoStream para poder realizar un proceso encripta/desencripta
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #4 (permalink)  
Antiguo 18/08/2009, 14:20
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Encriptar y desencriptar pass con c#

Muchas Gracias por la aclaración.

Probare con el System.Security.Cryptography para hacer la encriptacion mas segura...

Saludos!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #5 (permalink)  
Antiguo 18/08/2009, 16:43
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 5 meses
Puntos: 19
Respuesta: Encriptar y desencriptar pass con c#

Mira,aca tenes una función completa para encriptar y desencriptar. La idea es que generar un string que usa como "semilla" para encriptar en base a ese string y luego poder descencriptar:

http://www.obviex.com/samples/Code.a...tion&Lang=C%23



Ya que estamos como se hace entonces eso del hash? Osea, como sería encriptar una cadena y luego una vez encryptada compararla?
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #6 (permalink)  
Antiguo 18/08/2009, 19:32
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Encriptar y desencriptar pass con c#

Calculas el hash de no se

Primera vez el usuario se registra y guarda el hash de una contrasenia

Original Hash
Gato123 = BAD12327362986387236827361ABCD

cuando el usuario quiera hacer login tu deberas hacer el mismo calculo de hash y comparar tu resultado contra el registrado

Original Hash en BD Hash al hacer login
Gato345 BAD12327362986387236827361ABCD BAD123ABCD863457236827361ABCD

como no hay match no es el mismo password

Gato123 BAD12327362986387236827361ABCD BAD12327362986387236827361ABCD
si fuera el mismo que registro originalmente entonces valida su credencial.

PD: Solo hacemos incomprensible al ojo humano el valor guardado, pero al no ser reversible no se le puede llamara encriptacion.
PD: Ejemplo ilustrativo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #7 (permalink)  
Antiguo 18/08/2009, 20:01
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 5 meses
Puntos: 19
Respuesta: Encriptar y desencriptar pass con c#

ok peter muchas graciasss
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #8 (permalink)  
Antiguo 21/08/2009, 16:19
 
Fecha de Ingreso: julio-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Encriptar y desencriptar pass con c#

Cita:
Iniciado por pyroCL Ver Mensaje
Hola...

Necesito encriptar un password y guardarlo en una bs y luego desencriptarlo...

Como hago para trabajar con estos?

Alguna idea?
Saludos!
Amigo:
aca te dejo 2 metodos para encriptar y otro para desencriptar
estan en visual basic .net, si lo necesitas a C# solo cambiale la sintaxis

ojalas te sirva saludos

Function Encripta(ByVal Texto As String) As String
Dim Clave As String, i As Integer, Pass2 As String
Dim CAR As String, Codigo As String
Clave = "%ü&/@#$A"
Pass2 = ""

For i = 1 To Len(Texto)
CAR = Mid(Texto, i, 1)
Codigo = Mid(Clave, ((i - 1) Mod Len(Clave)) + 1, 1)
Pass2 = Pass2 & Microsoft.VisualBasic.Strings.Right("0" & Hex(Asc(Codigo) Xor Asc(CAR)), 2)
Next i
Encripta = Pass2
End Function


Function DesEncripta(ByVal Texto As String) As String
Dim Clave As String, i As Integer, Pass2 As String
Dim CAR As String, Codigo As String
Dim j As Integer

Clave = "%ü&/@#$A"
Pass2 = ""
j = 1
For i = 1 To Len(Texto) Step 2
CAR = Mid(Texto, i, 2)
Codigo = Mid(Clave, ((j - 1) Mod Len(Clave)) + 1, 1)
Pass2 = Pass2 & Chr(Asc(Codigo) Xor Val("&h" + CAR))
j = j + 1
Next i
DesEncripta = Pass2
End Function
  #9 (permalink)  
Antiguo 06/01/2010, 12:54
Yek
 
Fecha de Ingreso: enero-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Encriptar y desencriptar pass con c#

Cita:
Iniciado por DesarrolladorNet Ver Mensaje
Amigo:
aca te dejo 2 metodos para encriptar y otro para desencriptar
estan en visual basic .net, si lo necesitas a C# solo cambiale la sintaxis

ojalas te sirva saludos

Function Encripta(ByVal Texto As String) As String
Dim Clave As String, i As Integer, Pass2 As String
Dim CAR As String, Codigo As String
Clave = "%ü&/@#$A"
Pass2 = ""

For i = 1 To Len(Texto)
CAR = Mid(Texto, i, 1)
Codigo = Mid(Clave, ((i - 1) Mod Len(Clave)) + 1, 1)
Pass2 = Pass2 & Microsoft.VisualBasic.Strings.Right("0" & Hex(Asc(Codigo) Xor Asc(CAR)), 2)
Next i
Encripta = Pass2
End Function


Function DesEncripta(ByVal Texto As String) As String
Dim Clave As String, i As Integer, Pass2 As String
Dim CAR As String, Codigo As String
Dim j As Integer

Clave = "%ü&/@#$A"
Pass2 = ""
j = 1
For i = 1 To Len(Texto) Step 2
CAR = Mid(Texto, i, 2)
Codigo = Mid(Clave, ((j - 1) Mod Len(Clave)) + 1, 1)
Pass2 = Pass2 & Chr(Asc(Codigo) Xor Val("&h" + CAR))
j = j + 1
Next i
DesEncripta = Pass2
End Function
Pues en C# lo veo dificil por que la funcion Val("&h" + CAR)
si la reemplazamos por int.parse("&h" + CAR) nos dara un error que la cadena no tiene el formato correcto.
y realmente no he encontrado un equivalente que aga esactamente lo mismo que Val() para C#.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:02.