private function generateId()
    {
        $randomNumber = mt_rand(0, mt_getrandmax());
        $ipAddressFragment = md5(substr($this->ipAddress, 0, 5));
        $timestamp = md5(microtime(true) . $this->now);

        return hash('sha256', $randomNumber . $ipAddressFragment . $this->salt . $timestamp);
    }