2017-06-27 45 views
0

我有一个项目使用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; 
} 
+0

貌似这已经交叉张贴了这个在https://github.com/phpseclib/phpseclib/issues/1144。 – neubert

回答