fwPack & fwUnpack php script...

Pierre Sahores psahores at easynet.fr
Fri Jul 2 20:23:20 CDT 2004


shaosean at unitz.ca wrote:

> well here are the two functions.. next ;-)
> -Sean

A thing of beauty, Sean.  Thank you.

-- 
  Richard Gaskin
  Fourth World Media Corporation
  ___________________________________________________________
  Ambassador at FourthWorld.com       http://www.FourthWorld.com

> <%
> function fwPack($pData, $pPassword="") {
>   if ($pPassword === ""):
>     $pData = "00" . gzencode($pData);
>   else:
>     $tKeyString = pack("H*", md5($pPassword));
>     $tKeyStringLen = strlen($tKeyString);
>     $pData = gzencode($pData);
>     $tDataLen = strlen($pData);
>     $tCryptoText = "";
>     $i = 0;
>     for ($k=0; $k < $tDataLen; $k++):
>       if ($i >= $tKeyStringLen):
>         $i = 0;
>       endif;
>       $tCryptoText .= chr( ord($pData{$k}) ^ ord($tKeyString{$i}) );
>       $i++;
>     endfor;
>     $pData = "01" . $tCryptoText;
>   endif;
>   return base64_encode($pData);
> }
> // end fwPack
> function fwUnpack($pData, $pPassword="") {
>   $pData = base64_decode($pData);
>   $tEncryptionMethod = $pData{0} . $pData{1};   // get the encryption 
> method
>   $pData = substr($pData,2);    // remove the encryption method from 
> the data
>   switch($tEncryptionMethod):
>   case "00":   // no encryption
>     break;
>   case "01":   // md5 encryption
>     $tKeyString = pack("H*", md5($pPassword));
>     $tKeyStringLen = strlen($tKeyString);
>     $tDataLen = strlen($pData);
>     $tClearText = "";
>     $i = 0;
>     for ($k=0; $k < $tDataLen; $k++):
>       if ($i >= $tKeyStringLen):
>         $i = 0;
>       endif;
>       $tClearText .= chr( ord($pData{$k}) ^ ord($tKeyString{$i}) );
>       $i++;
>     endfor;
>     $pData = $tClearText;
>   endswitch;
>   return gzinflate(substr($pData,10)); }
> // end fwUnpack
> echo fwUnpack(fwPack("abraxas", "fred"), "fred");
> %>
_______________________________________________
use-revolution mailing list
use-revolution at lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution

<?
	function fwPack($pData, $pPassword="")
	{
   		if ($pPassword == "")
     		$pData = "00" . gzencode($pData);
  		else
  		{
			$tKeyString = pack("H*", md5($pPassword));
     		$tKeyStringLen = strlen($tKeyString);

     		$pData = gzencode($pData);
     		$tDataLen = strlen($pData);

     		$i = 0;
    			$tCryptoText = "";
     		for ($k=0; $k < $tDataLen; $k++)
     		{
       			if ($i >= $tKeyStringLen)
         			$i = 0;
  				$tCryptoText .= chr( ord($pData{$k}) ^ ord($tKeyString{$i}) );
       			$i++;
     		}

     		$pData = "01" . $tCryptoText;
  		}
  		$theResult = base64_encode($pData);
   		return $theResult;
	}


	function fwUnpack($pData, $pPassword="")
	{
		$pData = base64_decode($pData);
		$tEncryptionMethod = $pData{0} . $pData{1};   // get the encryption 
method
		$pData = substr($pData,2);    // remove the encryption method from 
the data
	
		switch($tEncryptionMethod)
		{
			case "00":   // no encryption
				break;
				
			case "01":   // md5 encryption
				$tKeyString = pack("H*", md5($pPassword));
				$tKeyStringLen = strlen($tKeyString);
		
				$tDataLen = strlen($pData);
		
				$tClearText = "";
				$i = 0;
				for ($k=0; $k < $tDataLen; $k++)
				{
					if ($i >= $tKeyStringLen)
						$i = 0;
					$tClearText .= chr( ord($pData{$k}) ^ ord($tKeyString{$i}) );
					$i++;
				}
				
				$pData = $tClearText;
				break;
				
			default:
				exit ("ERROR: fwUnpack invalid encryption method = " . 
$tEncryptionMethod);
		}
	
		$theResult = gzinflate(substr($pData,10));
		
		if ($theResult === FALSE)
			exit ("ERROR: fwUnpack -- wrong password");
		else
			return $theResult;
	}
?>

Le 2 mars 04, à 16:40, Frank Leahy a écrit :

> Many, many thanks to shaosean and Brian Yennie for providing php 
> versions of fwPack and fwUnpack.  I cleaned them up a bit, added some 
> error handling, and tested the final code.
>
> I've put the final code up on my server at 
> http://photoalbum.backtalk.com/code_snippets/fwPack_fwUnpack.php.txt
>
> Richard, maybe you'd like to add this code to your fwPack/fwUnpack 
> stack?
>
> Thanks,
> -- Frank
> Weblog: http://cornwall.backtalk.com
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>


Le 2 juil. 04, à 20:35, Chipp Walters a écrit :

> Howdy,
>
> Anyone out there have a copy of the php fwPack/unPack php scripts 
> posted a while back? It turns out the server where it's hosted is 
> down...
>
> best,
>
> Chipp
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>

Best to All,

-- 
Bien cordialement, Pierre Sahores

100, rue de Paris
F - 77140 Nemours

psahores+ at +easynet.fr

GSM:   +33 6 03 95 77 70
Pro:      +33 1 41 60 52 68
Dom:    +33 1 64 45 05 33
Fax:      +33 1 64 45 05 33

Inspection académique de Seine-Saint-Denis
Applications et SGBD ACID SQL (WEB et PGI)
Penser et produire "delta de productivité"



More information about the use-livecode mailing list