Foros del Web » Programando para Internet » PHP »

Desencriptar JS en PHP. Transformar funciones.

Estas en el tema de Desencriptar JS en PHP. Transformar funciones. en el foro de PHP en Foros del Web. Hola, tengo un problema con un script. Resulta que necesito traducir esto a codigo comprensible html, para ello necesito hacerlo con php. Se trata de ...
  #1 (permalink)  
Antiguo 06/09/2010, 00:10
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Desencriptar JS en PHP. Transformar funciones.

Hola, tengo un problema con un script. Resulta que necesito traducir esto a codigo comprensible html, para ello necesito hacerlo con php.

Se trata de una cadena de texto que mediante JS se convierte a html. Necesitaria hacer el proceso en php y mi pregunta es si pasando las funciones a su respectivo codigo php seria posible hacerlo funcionar.


Esta es la funcion que se convierte en html.
Código HTML:
decodeBase64('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');

Y este es el fichero JS con las funciones de desencriptarlo:
Código Javascript:
Ver original
  1. function Decripta(key, pt) {
  2.     s = new Array();
  3.     for (var i=0; i<256; i++) {
  4.         s[i] = i;
  5.     }
  6.     var j = 0;
  7.     var x;
  8.     for (i=0; i<256; i++) {
  9.         j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
  10.         x = s[i];
  11.         s[i] = s[j];
  12.         s[j] = x;
  13.     }
  14.     i = 0;
  15.     j = 0;
  16.     var ct = '';
  17.     for (var y=0; y<pt.length; y++) {
  18.         i = (i + 1) % 256;
  19.         j = (j + s[i]) % 256;
  20.         x = s[i];
  21.         s[i] = s[j];
  22.         s[j] = x;
  23.         ct += String.fromCharCode(pt.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
  24.     }
  25.     return(ct);
  26. }
  27. function Procesa(key, ct) {
  28.     document.write(Decripta(key, ct));
  29. }
  30.  
  31.  
  32.  
  33. var END_OF_INPUT = -1;
  34.  
  35. var base64Chars = new Array(
  36.     'A','B','C','D','E','F','G','H',
  37.     'I','J','K','L','M','N','O','P',
  38.     'Q','R','S','T','U','V','W','X',
  39.     'Y','Z','a','b','c','d','e','f',
  40.     'g','h','i','j','k','l','m','n',
  41.     'o','p','q','r','s','t','u','v',
  42.     'w','x','y','z','0','1','2','3',
  43.     '4','5','6','7','8','9','+','/'
  44. );
  45.  
  46. var reverseBase64Chars = new Array();
  47. for (var i=0; i < base64Chars.length; i++){
  48.     reverseBase64Chars[base64Chars[i]] = i;
  49. }
  50.  
  51. function setBase64Str(str){
  52.     base64Str = str;
  53.     base64Count = 0;
  54. }
  55.  
  56. function decodeBase64(str){
  57.     setBase64Str(str);
  58.     var result = "";
  59.     var inBuffer = new Array(4);
  60.     var done = false;
  61.     while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
  62.         && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
  63.         inBuffer[2] = readReverseBase64();
  64.         inBuffer[3] = readReverseBase64();
  65.         result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
  66.         if (inBuffer[2] != END_OF_INPUT){
  67.             result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
  68.             if (inBuffer[3] != END_OF_INPUT){
  69.                 result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
  70.             } else {
  71.                 done = true;
  72.             }
  73.         } else {
  74.             done = true;
  75.         }
  76.     }
  77.    Procesa('cryptkey', result);
  78. }
  79. function readReverseBase64(){  
  80.     if (!base64Str) return END_OF_INPUT;
  81.     while (true){      
  82.         if (base64Count >= base64Str.length) return END_OF_INPUT;
  83.         var nextCharacter = base64Str.charAt(base64Count);
  84.         base64Count++;
  85.         if (reverseBase64Chars[nextCharacter]){
  86.             return reverseBase64Chars[nextCharacter];
  87.         }
  88.         if (nextCharacter == 'A') return 0;
  89.     }
  90.     return END_OF_INPUT;
  91. }
  92. function ntos(n){
  93.     n=n.toString(16);
  94.     if (n.length == 1) n="0"+n;
  95.     n="%"+n;
  96.     return unescape(n);
  97. }




Es bastante complejo para mi con lo que agtradeceria cualquier ayuda.

Muchas gracias!
  #2 (permalink)  
Antiguo 06/09/2010, 02:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Creo que es mejor hacer la pregunta en php

Tema movido desde javascript
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 06/09/2010, 08:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Desencriptar JS en PHP. Transformar funciones.

Lo que te recomiendo es que uses base64_encode y base64_decode para eso en PHP. No hay mucha complicación en formar funciones para ello, ya PHP lo tiene creado.
Código PHP:
Ver original
  1. <?php
  2. echo base64_encode('<b>foo</b> <div>bar</div> <p>baz</p> candy <br />');
  3.   // Imprime PGI+Zm9vPC9iPiA8ZGl2PmJhcjwvZGl2PiA8cD5iYXo8L3A+IGNhbmR5IDxiciAvPg==
  4.  
  5. echo base64_decode('PGI+Zm9vPC9iPiA8ZGl2PmJhcjwvZGl2PiA8cD5iYXo8L3A+IGNhbmR5IDxiciAvPg==');
  6.   // Imprme <b>foo</b> <div>bar</div> <p>baz</p> candy <br />
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 06/09/2010, 12:05
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Desencriptar JS en PHP. Transformar funciones.

Es que si os fijais parece que el base64 usada en ese js no parece muy normal, es como que está personalizado para no poderle sacar la cadena :S

¿No?
  #5 (permalink)  
Antiguo 06/09/2010, 14:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Desencriptar JS en PHP. Transformar funciones.

Al parecer, pero ¿trataste el que te indiqué?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 06/09/2010, 21:15
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Desencriptar JS en PHP. Transformar funciones.

es que aunke lo intente fijate que la funcion luego llama a Procesa('cryptkey', result);, que a su vez llama a Decripta(key, pt) con otro algoritmo.

Por mucho que pase la función tendré que hacer las otras funciones en php para convertirlo finalmente no?

De ser asi este fin de semana intentaré traducir las otras a php y a ver si hace el circuito bien.
  #7 (permalink)  
Antiguo 06/09/2010, 21:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Desencriptar JS en PHP. Transformar funciones.

Pero, en vez de usar javascript para convertirlo y usar directamente PHP ¿no te resulta? Es decir que PHP haga el trabajo y no usar nada de javascript.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 07/09/2010, 08:03
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Desencriptar JS en PHP. Transformar funciones.

a vale, ya entiendo que te pasa, piensas que el codigo es mio y lo utilizo para algo mio, no es mio, está en una web y lo obtengo con un simple curl o file o el que quieras desde php, digamos que es un poco de escrapping pero es simplemente una prueba, entonces lo que quiero obtener es el codigo encriptado mediante scrapping y volverlas a texto normal con las funciones que he creado con php, lo que se obtiene es una estructura html.

Etiquetas: desencriptar, funciones, js, transformar
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 07:57.