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

URGENTE: problema con SHA-2

Estas en el tema de URGENTE: problema con SHA-2 en el foro de Java en Foros del Web. Tengo en una aplicación el siguiente algoritmo HASH para encriptar contraseñas y no guardarlas como tales: Código PHP: public  String encriptar ( String contrasenna )  throws IllegalStateException  { ...
  #1 (permalink)  
Antiguo 23/02/2007, 18:39
 
Fecha de Ingreso: julio-2006
Mensajes: 60
Antigüedad: 17 años, 9 meses
Puntos: 0
URGENTE: problema con SHA-2

Tengo en una aplicación el siguiente algoritmo HASH para encriptar contraseñas y no guardarlas como tales:

Código PHP:
public String encriptar(String contrasennathrows IllegalStateException {

        
MessageDigest md null;

        try {
            
md MessageDigest.getInstance("SHA-512"); // Instancia de generador SHA-2
        
}
        catch(
NoSuchAlgorithmException e) {
            throw new 
IllegalStateException(e.getMessage());
        }

        try {
            
md.update(contrasenna.getBytes("UTF-8")); // Generación de resumen de mensaje
        
}
        catch(
UnsupportedEncodingException e) {
            throw new 
IllegalStateException(e.getMessage());
        }

        
byte raw[] = md.digest(); // Obtención del resumen de mensaje
        
String hash = (new BASE64Encoder()).encode(raw); // Traducción a BASE64
        
return hash;
    } 

En Windows me funciona perfectamente, pero he pasado el programa a Linux y no me funciona la encriptación de contraseñas

¿El SHA-2 es dependiente del sistema operativo? ¿O qué puede estar fallando?
  #2 (permalink)  
Antiguo 23/02/2007, 19:10
 
Fecha de Ingreso: julio-2006
Mensajes: 60
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: URGENTE: problema con SHA-2

No lo entiendo. El código HASH generado es IDÉNTICO al almacenado en la base de datos MySQL, pero al hacer el SELECT no encuentra coincidencias (pero en Windows sí que me las encontraba)

Edito: Solo me la encuentra si está generado también en Linux.

Me refiero: He pasado la base de datos en Windows que tenía a Linux, la cuál tenía ya una serie de usuarios registrados, y esos no los reconoce. Pero si registro uno nuevo en Linux con la misma contraseña, ese sí lo reconoce.
Y acabo de ver que me añade un espacio en blanco al final del código HASH almacenado en la BBDD (NO en el código que genero yo, ya que he comprobado eso y ahí no hay ningún espacio en blanco; me lo genera él al grabarlo en la BBDD) ¿Por qué?
  #3 (permalink)  
Antiguo 07/03/2007, 05:33
 
Fecha de Ingreso: febrero-2005
Mensajes: 10
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: URGENTE: problema con SHA-2

Hola

Mira tu problema es que en Linux y en Windows se generan las mismas contraseñas, pero en windows con un retorno de carro mas.

Para solucionarlo solo tienes que meter esto en tu codigo

byte b = 13;
char ax = (char)b;
if(clave != null && passw != null)
{
clave=clave.replaceAll(""+ax,"");
passw=passw.replaceAll(""+ax,"");
}

Una seria para la clave que te sacas de la BD y la otra para la que haces en el S.O asi siempre te quitara el retorno de carro

Un saludo
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 12:28.