if (list($uid, $password) = $res->fetchOneRow()) {
require_once 'secure_hash.inc.php';
$expected_response = hash_encrypt("$uname:$password:" . S::v('challenge'));
- if ($response != $expected_response) {
+ if ($response != $expected_response && Env::has('xorpass')
+ && !preg_match('/^0*$/', Env::v('xorpass'))) {
$new_password = hash_xor(Env::v('xorpass'), $password);
$expected_response = hash_encrypt("$uname:$new_password:" . S::v('challenge'));
if ($response == $expected_response) {
document.forms.loginsub.challenge.value;
document.forms.loginsub.response.value = hash_encrypt(str);
- document.forms.loginsub.xorpass.value = hash_xor(new_pass, old_pass);
+ if (new_pass != old_pass) {
+ document.forms.loginsub.xorpass.value = hash_xor(new_pass, old_pass);
+ }
document.forms.loginsub.username.value = document.forms.login.username.value;
document.forms.loginsub.remember.value = document.forms.login.remember.checked;
document.forms.loginsub.domain.value = document.forms.login.domain.value;