php2connect、加密和解决方案

php2connect、加密和解决方案,php,Php,我用过这个脚本,但它不再适合我了。我必须访问mysite.com/serv.php来调用脚本。因此,首先是脚本: $ip = "ip"; $user = "user"; $pass = "password"; if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist"); if(!($con = ssh2_connect($ip, 22))){ echo "<font color

我用过这个脚本,但它不再适合我了。我必须访问mysite.com/serv.php来调用脚本。因此,首先是脚本:

$ip = "ip";
$user = "user";
$pass = "password";

if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");

if(!($con = ssh2_connect($ip, 22))){
    echo "<font color='red'>fail: unable to establish connection</font>\n";
} else {   

    if(!ssh2_auth_password($con, $user, $pass)) {
        echo "fail: unable to authenticate";
    } else {
        echo "Sucessful";
        if (!($stream = ssh2_exec($con, "/home/boza/serv.sh" ))) {
            echo "fail: unable to execute command";
        } else {
            stream_set_blocking($stream, true);
            $data = "";
            while ($buf = fread($stream,4096)) {
                $data .= $buf;
            }
            fclose($stream);
        }
    }
}
$ip=“ip”;
$user=“user”;
$pass=“password”;
如果(!函数_存在(“ssh2_连接”))死(“函数ssh2_连接不存在”);
如果(!($con=ssh2\u连接($ip,22))){
echo“失败:无法建立连接\n”;
}否则{
如果(!ssh2_auth_password($con,$user,$pass)){
echo“失败:无法验证”;
}否则{
呼应“成功”;
if(!($stream=ssh2_exec($con,“/home/boza/serv.sh”)){
echo“失败:无法执行命令”;
}否则{
流\设置\阻塞($stream,true);
$data=“”;
而($buf=fread($stream,4096)){
$data.=$buf;
}
fclose($流);
}
}
}
脚本运行良好,但我想对其进行一些更改。 1.我想添加md5哈希到它,使它更安全 2.我希望在访问serv.php时不执行脚本,而是通过按下按钮进行ajax调用来执行脚本。 3.我希望有用户反馈,如“成功”或“失败”。。。就像我现在做的一样,使用live ajax或其他没有刷新站点的东西

我在谷歌上搜索过,并尝试将md5('xxxx')放入脚本中,我发现了一个奇怪的错误,我确信我做错了什么


有人能帮我解决这个问题吗?

MD5
是单向散列,无法保护您的连接。它也很弱,不像以前那么强。我不推荐任何级别的安全性

您应该看到的是
使用公钥身份验证进行身份验证
看看这个


只有在按下以下按钮时,才能使用窗体启动脚本:

$ip = "ip";
$user = "user";
$pass = "password";

if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
echo '<form action="#" method="POST">';
echo '<input type="submit" name="launch" value="1" />'
echo '</form>';

if($_POST['launch']==1){
    if(!($con = ssh2_connect($ip, 22))){
        echo "<font color='red'>fail: unable to establish connection</font>\n";
    } else {   

        if(!ssh2_auth_password($con, $user, $pass)) {
            echo "fail: unable to authenticate";
        } else {
            echo "Sucessful";
            if (!($stream = ssh2_exec($con, "/home/boza/serv.sh" ))) {
                echo "fail: unable to execute command";
            } else {
                stream_set_blocking($stream, true);
                $data = "";
                while ($buf = fread($stream,4096)) {
                    $data .= $buf;
                }
                fclose($stream);
            }
        }
    }
}
$ip=“ip”;
$user=“user”;
$pass=“password”;
如果(!函数_存在(“ssh2_连接”))死(“函数ssh2_连接不存在”);
回声';
回声“
回声';
如果($_POST['launch']==1){
如果(!($con=ssh2\u连接($ip,22))){
echo“失败:无法建立连接\n”;
}否则{
如果(!ssh2_auth_password($con,$user,$pass)){
echo“失败:无法验证”;
}否则{
呼应“成功”;
if(!($stream=ssh2_exec($con,“/home/boza/serv.sh”)){
echo“失败:无法执行命令”;
}否则{
流\设置\阻塞($stream,true);
$data=“”;
而($buf=fread($stream,4096)){
$data.=$buf;
}
fclose($流);
}
}
}
}
对于密码,您可以使用“baba”类,或者如果只是源代码读取的问题,您可以使用简单的可逆加密函数,如XOR加密,请注意,这只是为了使密码不能从源代码直接还原,但它不是一个完美的安全性

例如:

 function XORin($key='asimpletext', $text='pwd'){
     for($i=0;$i<strlen($text);$i++)
     {
         for($j=0;$j<strlen($key);$j++,$i++)
         {
             $outText .= $text{$i} ^ $key{$j};
         }
     }
     return $outText;
 }

 function XORout($key='asimpletext', $text='pwd'){(){
     for($i=0;$i<strlen($text);$i++)
     {
         for($j=0;$j<strlen($key);$j++,$i++)
         {
             $outText .= $key{$j} ^ $text{$i};
         }
     }
     return $outText;
 }
函数XORin($key='asimpletext',$text='pwd'){
对于($i=0;$i我认为还有其他ftp用户,我想对他们隐藏。但不是用公钥:/n如果其他人有访问权限,服务器就不受保护……除非你加密你的整个php代码……即使是高级开发人员也可以破解这一点。这不是问题,我会使用ioncube隐藏所有代码。我只想隐藏密码。但不适用于Base64谢谢按钮解决方案xavier Z。它可以工作,但在我进入页面时出现错误。注意:未定义索引:在第11行的/var/www/serv.php中启动一些非刷新响应如何?
 function XORin($key='asimpletext', $text='pwd'){
     for($i=0;$i<strlen($text);$i++)
     {
         for($j=0;$j<strlen($key);$j++,$i++)
         {
             $outText .= $text{$i} ^ $key{$j};
         }
     }
     return $outText;
 }

 function XORout($key='asimpletext', $text='pwd'){(){
     for($i=0;$i<strlen($text);$i++)
     {
         for($j=0;$j<strlen($key);$j++,$i++)
         {
             $outText .= $key{$j} ^ $text{$i};
         }
     }
     return $outText;
 }