Foros del Web » Programando para Internet » PHP »

Problema con PHP decode.

Estas en el tema de Problema con PHP decode. en el foro de PHP en Foros del Web. Hola a todos, ¿Como les va?. He estado teniendo problemas con la funcion PHP decode. Este es el codigo en java para encriptar: Código: System.out.print("Account ...
  #1 (permalink)  
Antiguo 30/06/2011, 12:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Problema con PHP decode.

Hola a todos, ¿Como les va?.

He estado teniendo problemas con la funcion PHP decode.

Este es el codigo en java para encriptar:
Código:
						System.out.print("Account name: ");
						_uname = _in.readLine().toLowerCase();

						System.out.print("Password: ");
						_pass = _in.readLine();

						System.out.print("Access level: ");
						_level = _in.readLine();

				addOrUpdateAccount(_uname.trim(), _pass.trim(), _level.trim());

	private static void addOrUpdateAccount(String account, String password, String level) throws IOException, SQLException, NoSuchAlgorithmException
	{
		// Encode Password
		MessageDigest md = MessageDigest.getInstance("SHA");
		byte[] newpass;
		newpass = password.getBytes("UTF-8");
		newpass = md.digest(newpass);
		
		// Add to Base
		Connection con = null;
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("REPLACE accounts (login, password, accessLevel) VALUES (?,?,?)");
		statement.setString(1, account);
		statement.setString(2, Base64.encodeBytes(newpass));
		statement.setString(3, level);
		statement.executeUpdate();
		statement.close();
		L2DatabaseFactory.close(con);
	}
No lo pongo todo el codigo porque exede los 10000 caracteres, si alguien nececita mas, me avisa.

Este es el codigo que trate de hacer.

Password es una variable sacada desde la base de datos.
Código PHP:
Ver original
  1. base64_decode(pack("H*", sha1(utf8_decode($password))));

Pero esta mal sentenciado.

Lo que ando nececitando es un poco de ayuda con el codigo.

Desde ya muchas gracias.

Saludos.
  #2 (permalink)  
Antiguo 30/06/2011, 12:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con PHP decode.

¿Que relación tiene el código Java que muestras con PHP?

Además, usa el sentido común la función base64_decode() solo funciona con datos codificados con Base64, osea el resultado de base64_encode().

¿Podrías explicar que estás pensando?

¿Quieres codificar o decodificar Base64?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/06/2011, 12:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con PHP decode.

El codigo en java es el metodo de encripcion y lo que quiero hacer en php es descodificarlo.

Esta encriptado en Base64 + UTF8 a mi pensar.

Gracias por responder tan rapido.
  #4 (permalink)  
Antiguo 30/06/2011, 12:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con PHP decode.

Entonces, ¿puedes explicar un poco lo que intentas hacer?

¿Imagino que deseas desencriptar la contraseña?

¿Dicha contraseña esta codificada en Base64?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 30/06/2011, 13:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con PHP decode.

La idea es desencriptar la contraseña de una cuenta y que te la muestre en la pagina, esto es para una web de un juego donde los administradores nececitan ver la contraseña de una cuenta para hacer la parte de support.
  #6 (permalink)  
Antiguo 30/06/2011, 13:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con PHP decode.

Por eso te hice varias preguntas...
Cita:
Iniciado por pateketrueke Ver Mensaje
Entonces, ¿puedes explicar un poco lo que intentas hacer?

¿Imagino que deseas desencriptar la contraseña?

¿Dicha contraseña esta codificada en Base64?
¿Quieres contestar lo que te falta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 30/06/2011, 13:51
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con PHP decode.

No se mucho de php pero trate de desencriptar la contraseña con utf8 pero sin ningun resultado, pero con base64 sale otra cosa y si a base64 le agregas desencriptacion de UTF8 te sale otra cosa mas.

No se tanto de php pero creo que es Desencriptar base64 + utf8.
  #8 (permalink)  
Antiguo 30/06/2011, 14:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con PHP decode.

Bueno, voy a ser un poco mas preciso en mi pregunta.

¿Que tipo de codificación se emplea en la contraseña?

Osea, vamos a verlo así.

Cuando guardas la contraseña en la BD, ¿que usas para codificarle?

En base a tu respuesta se halla la solución.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 30/06/2011, 14:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con PHP decode.

El codigo java que te mostre ese es el account mannager, segun dice hay (Yo no entiendo Java) usa Utf8 + base64.
  #10 (permalink)  
Antiguo 30/06/2011, 15:18
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con PHP decode.

Código:
						System.out.print("Account name: ");
						_uname = _in.readLine().toLowerCase();

						System.out.print("Password: ");
						_pass = _in.readLine();

						System.out.print("Access level: ");
						_level = _in.readLine();

				addOrUpdateAccount(_uname.trim(), _pass.trim(), _level.trim());

	private static void addOrUpdateAccount(String account, String password, String level) throws IOException, SQLException, NoSuchAlgorithmException
	{
		// Encode Password
		MessageDigest md = MessageDigest.getInstance("SHA");
		byte[] newpass;
		newpass = password.getBytes("UTF-8");
		newpass = md.digest(newpass);
		
		// Add to Base
		Connection con = null;
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("REPLACE accounts (login, password, accessLevel) VALUES (?,?,?)");
		statement.setString(1, account);
		statement.setString(2, Base64.encodeBytes(newpass));
		statement.setString(3, level);
		statement.executeUpdate();
		statement.close();
		L2DatabaseFactory.close(con);
	}
Algo asi seria la salida:
Código:
Base64.encodeBytes(md.digest(aca la password("UTF-8"););));

Última edición por Duffing; 30/06/2011 a las 15:26
  #11 (permalink)  
Antiguo 30/06/2011, 15:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con PHP decode.

Mira, piensa de este modo:

Del código Java que tienes, el primer paso es pasar el string a UTF-8; mientras que el siguiente paso es codificarlo en Base64.

Ahora, para hacer ingeniería inversa simplemente voltea el orden de los factores.

Primero decodificas de Base64 con base64_decode(), y luego decodificas de UTF-8 (aunque no creo que sea necesario) con utf8_decode().
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 30/06/2011, 15:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema con PHP decode.

El problema viendo tu código en Java es que esta hasheando el password usando sha1, por lo cual no vas a poder obtener el password original, ya que solo estas guardando el hash del password.
  #13 (permalink)  
Antiguo 30/06/2011, 18:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con PHP decode.

Cita:
Iniciado por GatorV Ver Mensaje
El problema viendo tu código en Java es que esta hasheando el password usando [URL="http://en.wikipedia.org/wiki/SHA-1"][B]sha1[/B][/URL], por lo cual no vas a poder obtener el password original, ya que solo estas guardando el hash del password.
¿Me podrias explicar un poco del hash?

Desde ya muchas gracias.
  #14 (permalink)  
Antiguo 30/06/2011, 20:14
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con PHP decode.

Investigando un poco de sha1:
Código PHP:
Ver original
  1. <?php
  2. $str = 'apple';
  3.  
  4. if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') {
  5.     echo "Would you like a green or red apple?";
  6. }
  7. ?>

Saludos.
  #15 (permalink)  
Antiguo 30/06/2011, 20:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con PHP decode.

Los hash son codificación de una sola vuelta, asi que una ves codificado no se puede volver al valor original.

Por favor, usa Google, es tu amigo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: decode
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:37.