Foros del Web » Programando para Internet » PHP »

Urgente!, sha1

Estas en el tema de Urgente!, sha1 en el foro de PHP en Foros del Web. Hola, si pueden ayudarme por favor. Tengo que realizar un trabajo encriptando una cadena y devolviendola en SHA1, el problema es que me pasaron el ...
  #1 (permalink)  
Antiguo 19/11/2008, 12:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Urgente!, sha1

Hola, si pueden ayudarme por favor.
Tengo que realizar un trabajo encriptando una cadena y devolviendola en SHA1, el problema es que me pasaron el codigo de ejemplo en Java y el resultado que devuelve es diferente del de PHP, al parecer el Java pasa la cadena a binario y luego a SHA1, pero no me devuelve lo mismo en PHP, les dejo el codigo.

public String encrypt(String plainPassword) throws NoSuchAlgorithmException, UnsupportedEncodingException{

MessageDigest md = null;

md = MessageDigest.getInstance("SHA");

md.update(plainPassword.getBytes("UTF-8"));



byte raw[] = md.digest();

String hash = (new BASE64Encoder()).encode(raw);

return hash;

}





Ejemplo: si la plain password es “12345” el hash resultante es “jLIjfQZ5yojbZGTqxg2pY0VROWQ=”
  #2 (permalink)  
Antiguo 19/11/2008, 13:02
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: Urgente!, sha1

no te entiendo que quieres?
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 19/11/2008, 13:15
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Urgente!, sha1

Que tal, quiero encontrar la forma de hacer lo que esta en Java (el ejemplo) en PHP, esto significa que si codifico una cadena "12345" me devuelva "LIjfQZ5yojbZGTqxg2pY0VROWQ=", con SHA1 no va, tampoco con base64_encode, ni mezclandolos. Saludos.
  #4 (permalink)  
Antiguo 19/11/2008, 14:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Urgente!, sha1

Si ves lo que hace es codifica la cadena a sha1, y luego usa bas64_encode.

Saludos
  #5 (permalink)  
Antiguo 19/11/2008, 14:35
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Urgente!, sha1

Cita:
Iniciado por GatorV Ver Mensaje
Si ves lo que hace es codifica la cadena a sha1, y luego usa bas64_encode.

Saludos
Claro pero si codifico en SHA1 y luego en base64 en PHP me devuelve esto:
OGNiMjIzN2QwNjc5Y2E4OGRiNjQ2NGVhYzYwZGE5NjM0NTUxMz k2NA==

y no se parece en nada a lo que le devuelve con Java, ese es mi problema.
  #6 (permalink)  
Antiguo 19/11/2008, 14:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Urgente!, sha1

Segun lo que veo lo pasa por ut8, prueba hacer utf8_encode en la variable antes de pasarla por sha1.

Saludos.
  #7 (permalink)  
Antiguo 19/11/2008, 14:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Urgente!, sha1

Por ejemplo algo así:
Código php:
Ver original
  1. $output = base64_encode(sha1(utf8_encode("12345"), true));

Saludos.
  #8 (permalink)  
Antiguo 19/11/2008, 14:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Urgente!, sha1

Cita:
Iniciado por GatorV Ver Mensaje
Por ejemplo algo así:
Código php:
Ver original
  1. $output = base64_encode(sha1(utf8_encode("12345"), true));

Saludos.
Man, me salvaste. Muchas gracias viejo.
Conta conmigo para lo que precises. Saludos y gracias.
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:28.