这是简单的PHP代码文件
<?php
$source = "HelloWorld!!!";
echo "Source: $source<br/>";
$fp = fopen ( "../ssl/pubkey.key", "r" );//读取公钥
$pub_key = fread ( $fp, 8192 );
fclose ( $fp );
openssl_get_publickey ( $pub_key );
echo $pub_key."<br/>";openssl_public_encrypt ( $source, $crypttext, $pub_key );
die();//无法执行到这个位置
echo "String crypted: $crypttext";$fp = fopen ( "../ssl/privatekey.key", "r" );
$priv_key = fread ( $fp, 8192 );
fclose ( $fp );
// $passphrase is required if your key is encoded (suggested)
$res = openssl_get_privatekey ( $priv_key, $passphrase );
/*
  * NOTE:  Here you use the returned resource value
  */
openssl_private_decrypt ( $crypttext, $newsource, $res );
echo "String decrypt : $newsource";
?> 结果如下所示(在IE中显示):
Internet Explorer 无法显示该网页您可以尝试以下操作:诊断连接问题 我用的是XAMPP1.7.1版本

解决方案 »

  1.   

    首先请放弃IE浏览器吧,如果是HTTP 500错误,则是你的程序出现了致命错误。
    至于说哪儿出了错,就需要你打开错误提示才能知道
    在代码第一行加上一句 error_reporting(E_ALL | E_NOTICE);
      

  2.   

    你确信是“超时”错误吗?也许是哪一行执行就报错呢?(比如缺少某个扩展模块,或者文件路径问题)你要是有调试环境的话,下个断点,单步跟踪一次,就全都清楚了。如果没有的话……嗨,还是装一个吧 :)
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  3.   

    标题党啊, 我擦.直接php执行看看是否正常工作, 看看报啥错了.[User:root Time:08:38:42 Path:/home/liangdong/php/rsa]$ cat rsa1.php 
    <?php
    $rsa = openssl_pkey_new(array('private_key_bits' => 1024, 'encrypt_key' => false));
    openssl_pkey_export($rsa, $priv);
    file_put_contents('private.key', $priv);
    $pub = openssl_pkey_get_details($rsa);
    file_put_contents('public.key', $pub['key']);
    ?>
    [User:root Time:08:38:44 Path:/home/liangdong/php/rsa]$ cat rsa.php 
    <?php
    $context = "请加密我";
    $pub = openssl_pkey_get_public(file_get_contents('public.key'));
    $prv = openssl_pkey_get_private(file_get_contents('private.key'));
    openssl_public_encrypt($context, $after, $pub);
    echo "加密后:" . $after . PHP_EOL;
    openssl_private_decrypt($after, $before, $prv);
    echo "解密后:" . $before . PHP_EOL;
    ?>
    [User:root Time:08:38:47 Path:/home/liangdong/php/rsa]$ cat public.key 
    -----BEGIN PUBLIC KEY-----
    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMyMvMIuBs/pG586//2dlid8l+
    7sT4nq2vnN65wxMoOLgWurKZLiBCoZenSTV3l13sG8R8VgefviW/uMzZbx/dAzw+
    a/iUyeyCKBrwRRzhRqj9CahgWZYFquPpYcmTqp4V3xrB88kk3HPkxmVSBoIz0RFf
    jZUaxTlrk0k8A+V8iQIDAQAB
    -----END PUBLIC KEY-----
    [User:root Time:08:38:51 Path:/home/liangdong/php/rsa]$ cat private.key 
    -----BEGIN PRIVATE KEY-----
    MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMzIy8wi4Gz+kbnz
    r//Z2WJ3yX7uxPiera+c3rnDEyg4uBa6spkuIEKhl6dJNXeXXewbxHxWB5++Jb+4
    zNlvH90DPD5r+JTJ7IIoGvBFHOFGqP0JqGBZlgWq4+lhyZOqnhXfGsHzySTcc+TG
    ZVIGgjPREV+NlRrFOWuTSTwD5XyJAgMBAAECgYEAjBmDc7EYoPi4ceNJsVw04Kza
    6UAo+X51jQNhTO0smgPTzZkEvs9TusIaopPvRFYGJ5YHopiotpy77qJbYxYnUS9x
    2qUHV5vOq5YqrlcwlobfZKxHgn7PrLITUmb7eoiTCzVpw1LX4U7UMW0CGltoS4z8
    73wjngTbxoA7BP1MeAECQQDuHXAsLHtvgWhVlS98yVbgvSWY9rNBA+m5KRpeneIj
    Gb6moglKsrmvypHwoZPtNpQe3JQXq/rmtkTrxS72RarJAkEA3Cp239cUsu2yT+rV
    q1mbHoQn8uWeWgmDXwNjORUTDPpTvxnGucmK2/ahpRMzzSK/kl299OwaoupoqI7H
    O7RjwQJBALTL010nFT4wEulQkjL8qSORWpfPUYHfF7rIk8YduROPu6vIQqfeFpF8
    jN0ZwjkOBN99+lAS/DnrUV93Y9YIRckCQQCR/JZWVoejHXnfBBgqRoBU+8yBg0A8
    85HorpZcg1zefh6J2M2s47bvo9oLW3A91YyxwPb0MJp47HX5TrNNI5ABAkBOqztR
    luHDb7Jbj1HKvRM947cxTlbE3NcjtcMq9T1iDHtH39/mJHYvmnTXw7gFyyi/zfY3
    SJScPdncfkbHv8fl
    -----END PRIVATE KEY-----这是之前论坛上有人问时候我写的示例代码, 你对比一下吧.
      

  4.   

    不会的。我一直die,die到这个函数就死掉了
      

  5.   

    可惜没有正确的解决方法,我从网上找到了一篇博文,解决了我的问题,现附上网址http://blog.yogo.tw/2009/08/phpopenssl.html 
    这个问题的解决主要是对php.ini,http.conf,openssl.cnf三个配置文件的正确配置