如何测试登录密码

时间:2017-06-27 09:56:43

标签: login phpseclib

我有一个使用phpseclib connect cisco和H3C Swtich设备的项目。

这些设备' passowrd没有什么不同。所以当我第一次登录这些设备时,我必须尝试测试这些密码。

我写了一些代码来在密码列表中找到正确的密码,但正确的密码只有在首次登录时才会生效。

  function loginssh_keybo(){
    $user = user::find()->all();
    $ssh = new SSH2($this->ip);
    if (@$ssh->login($user[$this->i]->username, $user[$this->i]->password)) {
      return $ssh;
    }else{
        return false;
    }

}

function loginssh_pass(){
    $user = user::find()->all();
    $ssh = new SSH2($this->ip);
    if (@$ssh->login($user[$this->i]->username, $user[$this->i]->password, $user[$this->i]->password)) {
        return $ssh;
    }else{
        return false;
    }

}
function loginssh()
{
    $user = user::find()->all();
    $max = 3;
    $this->i = 0;
    do {
        if (@$ssh=$this->loginssh_keybo()) {
            $this->islogin = True;
            break;
        } elseif (@$ssh=$this->loginssh_pass()) {
            $this->islogin = True;
            break;
        }  elseif
        ($this->i > $max) {
            return false;
        }
        $this->i += 1;
    } while (!$this->islogin);
    $this->user = $user[$this->i]->username;
    $this->password = $user[$this->i]->password;
    return $ssh;
}

1 个答案:

答案 0 :(得分:0)

来自https://github.com/phpseclib/phpseclib/issues/1144

if ($ssh->login('username', 'password1')) {
    return true;
}
if ($ssh->login('username', 'password2')) {
     return true;
}
if ($ssh->login('username', 'password3')) {
     return true;
}
return false;