Login   Register  
PHP Classes
elePHPant
Icontem

File: encryption.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Patxi Echarte  >  Crypter  >  encryption.php  >  Download  
File: encryption.php
Role: ???
Content type: text/plain
Description: Crypt/Decrypt class
Class: Crypter
Class to crypt and decrypt data
Author: By
Last change:
Date: 13 years ago
Size: 2,586 bytes
 

Contents

Class file image Download
<?php
/*--------------------------------------------------------------------------------

  Archivo: eccryption.php
  Autor: Francisco Echarte [ patxi@eslomas.com ]
  Fecha: 2001-07-25

  Clases: Crypter
  
  Objetivo:
  Clase que ofrece funciones para la encriptación y desencriptación

  Observaciones:
  Basado en una observación vista en la página de md5 en php.net
  Al constructor hay que pasarle la palabra utilizada para la encriptación.
  
  Modificaciones:


  LICENCIA
  ========

     Copyright (c) 2001 Francisco Echarte <patxi@eslomas.com>
     This software is released under the GNU Public License
     Please see http://www.gnu.org/copyleft/lgpl.txt for licensing details!
  

  --------------------------------------------------------------------------------*/

class Crypter{

   var $key;


   /*----------------------------------------------------------------------
     Entrada: $clave => clave que va a utilizar el crypter
     Salida : nada
     Efecto : es el constructor de la clase.
     ----------------------------------------------------------------------*/
   function Crypter($clave){
      $this->key = $clave;
   }

   /*----------------------------------------------------------------------
     Entrada: $clave => clave que va a utilizar el crypter
     Salida : nada
     Efecto : actualiza la clave
     ----------------------------------------------------------------------*/
   function setKey($clave){
      $this->key = $clave;
   }
   
   function keyED($txt) { 
      $encrypt_key = md5($this->key); 
      $ctr=0; 
      $tmp = ""; 
      for ($i=0;$i<strlen($txt);$i++) { 
         if ($ctr==strlen($encrypt_key)) $ctr=0; 
         $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); 
         $ctr++; 
      } 
      return $tmp; 
   } 
   
   function encrypt($txt){ 
      srand((double)microtime()*1000000); 
      $encrypt_key = md5(rand(0,32000)); 
      $ctr=0; 
      $tmp = ""; 
      for ($i=0;$i<strlen($txt);$i++){ 
         if ($ctr==strlen($encrypt_key)) $ctr=0; 
         $tmp.= substr($encrypt_key,$ctr,1) . 
             (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); 
         $ctr++; 
      } 
      return base64_encode($this->keyED($tmp)); 
   } 

   function decrypt($txt) { 
      $txt = $this->keyED(base64_decode($txt)); 
      $tmp = ""; 
      for ($i=0;$i<strlen($txt);$i++){ 
         $md5 = substr($txt,$i,1); 
         $i++; 
         $tmp.= (substr($txt,$i,1) ^ $md5); 
      } 
      return $tmp; 
   } 

}
?>