Foros del Web » Programación para mayores de 30 ;) » .NET »

Una de encriptacion

Estas en el tema de Una de encriptacion en el foro de .NET en Foros del Web. Buenas, Tengo este código para encriptar unos datos: Código: Public Shared Function Encriptar(ByVal Texto As String) As String Dim BytesLimpios As [Byte]() BytesLimpios = New ...
  #1 (permalink)  
Antiguo 20/11/2006, 09:46
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Una de encriptacion

Buenas,
Tengo este código para encriptar unos datos:
Código:
Public Shared Function Encriptar(ByVal Texto As String) As String
    Dim BytesLimpios As [Byte]()
    BytesLimpios = New UnicodeEncoding().GetBytes(Texto)
    Dim BytesEncriptados As [Byte]() = CType(CryptoConfig.CreateFromName("MD5"), HashAlgorithm).ComputeHash(BytesLimpios)
    Dim TextoEncriptado As String = BitConverter.ToString(BytesEncriptados)
    Return TextoEncriptado
End Function
La pregunta es, tengo la posibilidad de crearme mi funcion "Desencriptar" o se trata de un tipo de encriptación que no se puede volver a deshacer?
Me han comentado que cabe la posibilidad que la encriptación solo exista en un sentido, y lo unico que se puede hacer es comparar el resultado encriptado, pero no desencriptar un texto ya encriptado...
Pueden aclararme esto?
Gracias!
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 20/11/2006, 11:26
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Cita:
Iniciado por moNTeZIon Ver Mensaje
Dim BytesEncriptados As [Byte]() = CType(CryptoConfig.CreateFromName("MD5"), HashAlgorithm).ComputeHash(BytesLimpios)
El cifrado con MD5 o SHA no se pueden deshacer, si quiere cifrar e invertir el cifrado puedes usar el metodo Rijndael.

Nota:
-Por seguridad las claves de los usuarios se cifran con MD5 o SHA para evitar que la clave o password del mismo sea leida por terceros.
-Las configuraciones de las aplicaciones se cifran con un metodo que se pueda invertir con el objetivo que se pueda leer cuando es necesario, ejemplo el string de conexion, a nosotros no nos interesa que el usuario se de cuenta cual es el user y pass del server de sql, pero si nos interesa descifrar y leerlo para poder realizar la conexion a la base de datos.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 20/11/2006, 13:02
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Gracias por la aclaración jhonwilliams!
O sea, que si me quedo con el sistema actual, que por lo que dices es lo correcto, cuando el usuario olvide la contraseña que?
Debo currarme ahora un sistema de generación de contraseñas para enviarles a los usuarios que las olviden?
Qué otra cosa podría hacer?
Es que me encuentro desarrollando la página que les enviava la contraseña a su correo electrónico, pero me encontré con que no puedo desencriptarla.
Gracias por las sugerencias.
Saludos!
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 20/11/2006, 13:16
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Creo que debes pensar en un sistema que le permita al usuario asignarse una nueva contraseña en caso de que la olvide, pero si son pocos usuarios tambien podrias hacerlo tu., pero bueno no nos salgamos del tema, como pensaria yo en un sistema de ese tipo.

1. Soy usuario y pierdo mi clave.
2. Voy a la pagina de recuperar clave.
3. Proceso para recuperacion de clave
3.1 Verificar que el usuario si exite en la bd.
3.2 Asignar un codigo de validacion, recomendado hacer un GUID
3.3 En un capo de la base de datos (COD_VERIFICACION), almacenar ese GUID.
3.4 Enviar un correo al usuario con el codigo de verificacion
3.5 En la pagina de nueva clave, deben haber tres campos.
-Codigo de Validacion (GUID)
-Nueva Clave
-Repetir Clave
3.6 Se realiza un select a los usuario "SELECT * FROM tblUsuario Where COD_VERIFICACION=GUID and USUARIO=USUARIO"
3.7 Si lo encuentra asiganar la clave que se digito.

Nota.
Debes pensar en como enviar el usuario, ya que en la pagina de verificacion te dije que eran tres campos, pero tampoco me parece optimo tener un campo usuario y que lo puenda digitar. Se me ocurre que tal vez pasandolo por URL.

¿Como identificas tus usuarios?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #5 (permalink)  
Antiguo 20/11/2006, 13:41
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Cita:
Iniciado por jhonwilliams Ver Mensaje
Nota.
Debes pensar en como enviar el usuario, ya que en la pagina de verificacion te dije que eran tres campos, pero tampoco me parece optimo tener un campo usuario y que lo puenda digitar. Se me ocurre que tal vez pasandolo por URL.

¿Como identificas tus usuarios?

Saludos
Regularmente deberías tener como usuario una cuenta de email válida, así solo tienes que generar una nueva contraseña, y envíandola a esa cuenta de email.
Después puedes ponerte elegante, y no "activar" esa nueva contraseña sino hasta que haya sido confirmada. Con esto quizás necesitarías enviar en el email un link para este propósito.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 20/11/2006, 17:50
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Gracias por las ideas!
Identifico mis usuarios con email y contraseña.
Me parece genial la opción de jhonwilliams.
Les enviaré el link con el GUID al correo, y haré una nueva página para que el usuario establezca su nueva contraseña.
Un saludo!
__________________
..:: moNTeZIon ::..
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 22:52.