用于从服务器检索密码列表的PHP解决方案

时间:2015-04-30 10:23:51

标签: php

有谁知道如何使用纯php解决方案来检索远程服务器支持的密码列表?

这是再次测试本地客户端(Web浏览器)的代码

$ciphers = openssl_get_cipher_methods();

foreach($ciphers as $cipher) {
    echo "{$cipher}<br>";
}

以下是我需要做的事情

  1. 我认为我需要做的是创建一个到远程的套接字连接 连接
  2. 我每次都需要使用循环来连接不同的密码。
  3. 对于成功建立的每个连接,它应该打印我们连接的密码的名称。
  4. 以下是一些建立安全连接的代码,但需要帮助来考虑上述要求。

    $url = $_REQUEST['host'];
    
    
    $ssloptions = array(
        "capture_peer_cert" => false, 
        "allow_self_signed"=>false, 
        "CN_match"=>$url, 
        "verify_peer"=>false, 
        "SNI_enabled"=>true,
        "SNI_server_name"=>$url,
    );
    
    $ctx = stream_context_create( array("ssl" => $ssloptions) );
    $result = stream_socket_client("ssl://$url:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx);
    $cont = stream_context_get_params($result);
    

    以下列出了我们可以用来连接的一些密码:

    TLS_RSA_WITH_RC4_128_MD5

    TLS_RSA_WITH_RC4_128_SHA

    TLS_RSA_WITH_3DES_EDE_CBC_SHA

    TLS_DHE_RSA_WITH_AES_256_CBC_SHA

    TLS_DHE_RSA_WITH_AES_128_CBC_SHA

1 个答案:

答案 0 :(得分:0)

我需要将它添加到我的套接字数组中:

'ciphers' => $value,

我还创建了一个包含所有密码套件的数组,并通过foreach ($ciphersuites_to_test as $value)遍历所有密码。