Re: decrypting query string back into $_GET['var'] [resend]

From: Date: Mon, 03 Oct 2005 15:32:27 +0000
Subject: Re: decrypting query string back into $_GET['var'] [resend]
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-223564@lists.php.net to get a copy of this message
Is this the safest way to send GET variables ? Guess I am trying to improve my code :) //---------------------------------- // 'Sending' PHP script: require_once("/home/includes/encryption.inc"); $str =encrypt(urlencode("movie=mymovie.mov&mask=mask.gif&drag=drag.gif")); $finalURLString = $pathtoReceivingScript.$str ; //---------------------------------- // 'Receiving' PHP script: require_once("/home/includes/encryption.inc"); $str =$_SERVER['QUERY_STRING']; parse_str(urldecode(decrypt($str)),$getVarArray); $movie = $getVarArray['movie']; $mask = $getVarArray['mask']; $drag = $getVarArray['drag']; //echo "$movie,$mask,$drag"; //---------------------------------- // Encryption.inc // Encrypt function encrypt($encrypt) { $key = "6r9qEJg6"; srand((double) microtime() * 1000000); //for sake of MCRYPT_RAND $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND); $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $encrypt, MCRYPT_MODE_ECB, $iv); $encode = base64_encode($passcrypt); return $encode; } // Decrypt function decrypt($decrypt) { global $key; $key = "6r9qEJg6"; $decoded = base64_decode($decrypt); $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND); $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $decoded, MCRYPT_MODE_ECB, $iv); return $decrypted; } On Sep 29, 2005, at 9:33 AM, Jochem Maas wrote:
Graham Anderson wrote:
What is the best way to decrypt a query string back into variables ? $root = "http://www.myserver.com/script.php"; $queryString = "?test=mytest&color=red"; myEncrypt($queryString); //add mCrypt encryption $finalURL = $root.$encryptedQueryString; what is the proper what to decrypt the GET variables on the other side ?
Do you need to decrypt the query string first ?
yes - if you have a query string like 4509134534068953534875104584437043134081743 or whatever then php won't turn it into a $_GET var. although your query string could contain &'s and/or ?'s and/or ='s in which case you might have cruft in the $_GET array which you would want to clean out before extracting your decrypted string into $_GET ..
decrypt($_SERVER['QUERY_STRING']); Once you have decrypted it, can you pass it along to a $_GET as you would with an unencrypted query string ? $test = $_GET['test']; Or, do you need to parse the string to extract variables?
yes you do, but this being php - there is a function that will do it for you :-) http://php.net/parse_str
many thanks g
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.general (#223564) next »