I had this same problem on an Ubuntu 11.10 system. On my system, Archon stores the password hash in a 34 character field, and then compares it to a 98 character long hash from crypt().
There are 3 solutions I've found:
1. Change the algorithm used by crypt() as described at http://php.net/manual/en/function.crypt.php
2. Edit the verifyPassword function in file user.inc.php to only compare the first 34 characters as below:
return ($this->PasswordHash && ($this->PasswordHash == substr(crypt($Password, $this->PasswordHash),0,34)));
3. Change the "PasswordHash" definition in the database table "tblCore_Users" to a field large enough to contain the entire hash.