Works fine on my local computer with PHP 4.3.10 and on the old server with 4.4.2 but not on the new server with 4.4.2....

Any ideas on this one? Code is below.

<?php //--------------------------------------------------------- // TEA Encryption Functions // Encryption and decryption of text // Using the Tiny Encryption Algorithm function DecToHex( $x ) { $r = dechex( $x ); while( strlen( $r ) < 8 ) $r = '0'.$r; return $r; } function shiftRightOne( $n ) { $s = $n & 0x80000000; $n &= 0x7fffffff; $n >>= 1; if( $s ) $n |= 0x40000000; return $n; } function shiftRight( $n, $t ) { for( $i = 0; $i < $t; ++$i ) { $n = shiftRightOne( $n ); } return $n; } function tea_encipher($p1, $p2, $k) { $temp = array( $p1, $p2 ); $n = 32; $sum = 0; while ($n-- > 0) { $temp[0] += (($temp[1] << 4 ^ shiftRight( $temp[1], 5 )) + $temp[1] ^ $sum + $k[($sum & 3)]); $sum = $sum + 0x9E3779B9; $temp[1] += (($temp[0] << 4 ^ shiftRight( $temp[0], 5 )) + $temp[0] ^ $sum + $k[( shiftRight( $sum, 11 ) & 3)]); } return $temp; } function tea_decipher($p1, $p2, $k) { $temp = array( $p1, $p2 ); $n = 32; $sum = 0x9E3779B9 * $n; while ($n-- > 0) { $temp[1] -= (($temp[0] << 4 ^ shiftRight( $temp[0], 5 )) + $temp[0] ^ $sum + $k[(shiftRight( $sum, 11 ) & 3)]); $sum = $sum - 0x9E3779B9; $temp[0] -= (($temp[1] << 4 ^ shiftRight( $temp[1], 5 )) + $temp[1] ^ $sum + $k[($sum & 3)]); } return $temp; } function tea_encrypt($inString, $key) { $outString = ""; // pad the input so that it's a multiple of 8 while ( strlen($inString) & 7 ) { $inString .= ' '; } $i = 0; while($i < strlen($inString) ) { // slam 4 bytes into a dword $p1 = ord( substr( $inString, $i++, 1 ) ); $p1 |= ord( substr( $inString, $i++, 1 ) ) << 8; $p1 |= ord( substr( $inString, $i++, 1 ) ) << 16; $p1 |= ord( substr( $inString, $i++, 1 ) ) << 24; // mask off 32 bits to be safe $p1 = $p1 & 0xFFFFFFFF; // slam 4 bytes into a dword $p2 = ord( substr( $inString, $i++, 1 ) ); $p2 |= ord( substr( $inString, $i++, 1 ) ) << 8; $p2 |= ord( substr( $inString, $i++, 1 ) ) << 16; $p2 |= ord( substr( $inString, $i++, 1 ) ) << 24; // mask off 32 bits to be safe $p2 = $p2 & 0xFFFFFFFF; // send dwords to be enciphered $res = tea_encipher($p1, $p2, $key); $outString .= DecToHex($res[0]).DecToHex($res[1]); } // return encrypted string return $outString; } function tea_decrypt( $inString, $key) { $outString = ''; // loop through input string $i = 0; while ( $i < strlen($inString) ) { // 8 hex chars make a dword $p3 = intval( substr( $inString, $i, 4 ), 16 ); // read high 16 bit word $p3 <<= 16; // shift hi word correct position $i += 4; $p3 |= intval(substr( $inString, $i, 4 ), 16 ); // read low 16 bit word $i += 4; $p4 = intval( substr( $inString, $i, 4 ), 16 ); // read high 16 bit word $p4 <<= 16; // shift hi word correct position $i += 4; $p4 |= intval(substr( $inString, $i, 4 ), 16 ); // read low 16 bit word $i += 4; // pass dwords to decipher routine $res = tea_decipher($p3, $p4, $key); // transform results back into alphanumic characters // unpack first dword $outString .= chr( ( $res[0] & 0x000000FF ) ); $outString .= chr( ( $res[0] & 0x0000FF00 ) >> 8 ); $outString .= chr( ( $res[0] & 0x00FF0000 ) >> 16 ); $outString .= chr( shiftRight( ( $res[0] & 0xFF000000 ), 24 ) ); // unpack second dword $outString .= chr( ( $res[1] & 0x000000FF ) ); $outString .= chr( ( $res[1] & 0x0000FF00 ) >> 8 ); $outString .= chr( ( $res[1] & 0x00FF0000 ) >> 16 ); $outString .= chr( shiftRight( ( $res[1] & 0xFF000000 ), 24 ) ); } return trim($outString); } function tea_isValid( $plain, $crypt, $keys ) { return ( tea_encrypt( $plain, $keys ) == $crypt ); } ?>