Tema: md5
Ver Mensaje Individual
  #15 (permalink)  
Antiguo 25/01/2007, 05:27
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 323
Antigüedad: 19 años
Puntos: 0
Re: md5

Pues creo q hay otra solución, en la red hay algoritimos de encriptación en la cual tu le puedes mandar 2 parametros el $password y $clave_privada(la clave q tu elijas) es decir para poder encriptar o desencriptar necesitas esta clave privada. Esta clave_privada la puedes poner dentro de tu mismo script.
Código PHP:
include("5CR.php");

$clave_privada "5498798798()723569++32423++";
$password"HolaMundo!";

$encriptacion = new E5CR($clave_privada );
echo 
"Mensaje Original: <b>$password</b><br>";

$encriptacion->encriptar($password,0);
echo 
"Mensaje Encriptado: <b>$password<b>"
class 5CR.php
Código PHP:
// +----------------------------------------------------------------------+
// | PHP Version 5                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 2005 Julian Andrés Lasso Figueroa                      |
// +----------------------------------------------------------------------+
// | Este codigo está sujeto a la licencia GPL, cualquier bug encontrado  |
// | por favor avisarme con un correo a [email protected]         |
// | Este codigo está basado en RC4 v 1.6                                 |
// +----------------------------------------------------------------------+
// | Autor: Julian Andrés Lasso Figueroa <[email protected]>      |
// +----------------------------------------------------------------------+
// 5CR.php, v 2.0 09/05/2005 10:50:00 p.m.

class E5CR{
    
    var 
$s = array();
  var 
$i 0;
  var 
$j 0;
  var 
$_key;
  var 
$bytes 256;
  
  function 
E5CR($key null)
  {
    if (
$key != null) {
      
$this->juego_de_llaves($key);
    } 
  }
  
  function 
juego_de_llaves($key)
  {
    if (
strlen($key) > 0)
      
$this->_key $key;
  }

  function 
llave(&$key)
  {
    
$len strlen($key);
    for (
$this->0$this->$this->bytes$this->i++) {
      
$this->s[$this->i] = $this->i;
    } 

    
$this->0;
    for (
$this->0$this->$this->bytes$this->i++) {
      
$this->= ((($this->$this->s[$this->i] + ord($key[$this->$len])) % $this->bytes) / 3);
      
$this->+= ((($this->$this->s[$this->i] + ord($key[$this->$len])) % $this->bytes) % 12);
      
$t $this->s[$this->i];
      
$this->s[$this->i] = $this->s[$this->j];
      
$this->s[$this->j] = $t;
    } 
    
$this->$this->0;
  }
  
  function 
hex2bin(&$RawInput)
  {
        
$BinStr '';
        for (
$i 0$i strlen ($RawInput); $i += 2)
            
$BinStr .= '%'.substr ($RawInput$i2);
        
$RawInput rawurldecode($BinStr);
    }

  function 
encriptar(&$encript$tipo)
  {
      
$this->llave($this->_key);
        
$len strlen($encript);
        for (
$c 0$c $len$c++) {
            
$this->= ((($this->1) % $this->bytes) / 3) + ((($this->$this->s[$this->i] + ord($key[$this->$len])) % $this->bytes) % 12);
          
$this->= ((($this->$this->s[$this->i]) % $this->bytes) / 3) + ((($this->$this->s[$this->i] + ord($key[$this->$len])) % $this->bytes) % 12);
          
$t $this->s[$this->i];
          
$this->s[$this->i] = $this->s[$this->j];
          
$this->s[$this->j] = $t;
        
          
$t = ((($this->s[$this->i] + $this->s[$this->j]) % $this->bytes) / 3) + ((($this->$this->s[$this->i] + ord($key[$this->$len])) % $this->bytes) % 12);
        
          
$encript[$c] = chr(ord($encript[$c]) ^ $this->s[$t]);
        }
        
        
// 0 = claves y 1 = url
      
switch($tipo){
          case 
0:
            
$encript crc32(sha1(md5(bin2hex($encript))));
            break;
          case 
1:
              
$encript bin2hex($encript);
          case 
2:
              
$encript;
      }
  }
  
  function 
destrozar(&$cadena$num){
        for(
$i=0;$i<$num;$i++){
            
$pos strpos($cadena,"="); // posición del primer =
            
$campo substr($cadena,0,$pos); // sustración del nombre del campo
            
$cadena substr($cadena,$pos+1,strlen($cadena)); // actualización de la cadena
            
$pos strpos($cadena,"&"); // posición del primer &
            
if($pos == null)
                
$pos strlen($cadena);
            
$contenido substr($cadena,0,$pos);
            
$cadena substr($cadena,$pos+1,strlen($cadena)); // actualización de la cadena
            
$datos[$campo] = $contenido;
            
        }
        return 
$datos;
  }
  
  function 
desencriptar(&$desencript$num)
  {
      
$this->hex2bin($desencript);
    
$this->encriptar($desencript,2);
         
$desencript $this->destrozar($desencript$num);
  }