function _equals($x, $y)
    {
        if (strlen($x) != strlen($y)) {
            return false;
        }

        $result = 0;
        for ($i = 0; $i < strlen($x); $i++) {
            $result |= ord($x[$i]) ^ ord($y[$i]);
        }

        return $result == 0;
    }
function _equals($x, $y)
    {
        if (strlen($x) != strlen($y)) {
            return false;
        }

        $result = 0;
        for ($i = 0; $i < strlen($x); $i++) {
            $result |= ord($x[$i]) ^ ord($y[$i]);
        }

        return $result == 0;
    }
function _equals ( $ x , $ y ) { if ( strlen ( $ x ) != strlen ( $ y ) ) { return false ; } $ result = 0 ; for ( $ i = 0 ; $ i < strlen ( $ x ) ; $ i ++ ) { $ result |= ord ( $ x [ $ i ] ) ^ ord ( $ y [ $ i ] ) ; } return $ result == 0 ; }
Performs blinded RSA equality testing

Protects against a particular type of timing attack described.

See {@link http://codahale.com/a-lesson-in-timing-attacks/ A Lesson In Timing Attacks (or, Don't use MessageDigest.isEquals)}

Thanks for the heads up singpolyma!

@access private
@param string $x
@param string $y
@return bool
Performs blinded RSA equality testing