问题标签 [php-openssl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2399 浏览

php - PHP 服务器端 SNI 支持

我阅读了很多 php 手册页,但只在上下文中找到了有关 SNI 支持的信息 - http://www.php.net/manual/en/context.ssl.php

当PHP作为服务器工作时,是否可以获得浏览器发送的SNI?服务器是使用标准 stream_socket_server() 创建的,如例如中所述。这篇文章:http ://www.php.net/manual/en/function.stream-socket-server.php#98616

0 投票
2 回答
26570 浏览

php - 提供的密钥参数不能通过 Google API 强制转换为私钥

我正在尝试测试我在此处找到的这个示例,以便我可以在客户端直接上传,而无需用户使用 Google Cloud Storage 登录。

表示的所有常量都有正确的值,路径正确且内容不为空。

我得到的错误:

我实现的功能是:

0 投票
1 回答
1050 浏览

php - PHP:使用openSSL加密和解密时出错

我一直在尝试制作两个 PHP 页面,一个用于加密,一个用于解密。

加密页面的代码:

这是解密的代码:

似乎可以很好地加密数据,但是当我尝试使用其他页面解密时,出现错误:

openssl_private_decrypt() [function.openssl-private-decrypt]:密钥参数不是有效的私钥

我直接从加密文件的输出中复制并粘贴了私钥。为什么我会收到错误消息?

0 投票
2 回答
1648 浏览

php - 生成 CloudFront 签名 URL 时性能下降

我正在按照此示例使用 PHP http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CreateURL_PHP.html在 CloudFront 上创建签名 URL

而且我一切正常,并为 RTMP 分发和 HTTP 分发生成了签名 URL。

但是我注意到生成签名 URL 需要相当长的时间,我想知道在生产环境中使用数千个请求时会产生什么影响。

我做了一些测试,似乎花了很长时间是由于 php-openssl 功能。

这是代码:

这与 CloudFront 在其文档中的示例基本相同。然后我创建了一个控制器,我调用 get_signed_stream_name() 来生成签名的 url。我决定做一个while循环来看看创建500个签名的url需要多长时间。

在我的本地机器上,在 while 循环中生成 500 个签名的 url 大约需要 11 秒。然后我决定改变这样的:

看看如果除了调用 php-openssl 函数 openssl_get_privatekey()、openssl_sign()、openssl_free_key() 之外的所有内容都运行时会发生什么。

我用 500 while 循环运行了相同的脚本,它花了 0.090 秒。所以基本上 php-openssl 函数使脚本变慢了很多。这是我应该担心的事情吗,这是正常的,因为我正在生成这些签名的 url 并且需要相当大的处理能力?

我做了几次尝试,这里是每个 3 次的示例时间。

另外,我想知道如何创建适用于发行版中任何文件的签名。一个通配符,我可以生成一个签名,该签名可用于该文件夹或发行版下的所有文件。我在某个地方读到它是可能的,但不确定如何使用上面的这些示例。也许如果我可以为每个请求而不是为请求中返回的每个文件创建一个签名,那么密集度会降低。

谢谢!

0 投票
1 回答
4771 浏览

php - CentOS 5.10 无法启用 php-openssl 扩展

我在我的服务器上安装了 CentOS 5.10 和 PHP 5.4.17,但问题是我无法启用 php-openssl 扩展。通过命令 'locate openssl' 看起来扩展名存在,所以我尝试在 '/etc/php.d/' 中创建 openssl.ini 文件,但没有任何反应。

输出php -r "phpinfo();" | grep -i openssl

OpenSSL 支持 => 禁用(安装 ext/openssl)

我怎样才能启用那个分机?我尝试在 google 中搜索,但没有发现任何有用的信息。对不起我的英语不好。谢谢。

0 投票
2 回答
6419 浏览

php - 我无法在 mac os x 上安装 composer

按照此页面的说明(下面的链接),我仍然无法安装作曲家,我不确定我在哪里失败了。有什么好的眼睛可以发现我的错误吗?我非常接近我能感觉到它,但还没有运气,这可能是我在这里做的一个简单的错误......请帮助!

https://getcomposer.org/download/

步骤1:

控制台响应:

第2步:

回复:

第 3 步:

回复:

第4步:

回复:

第 5 步:

回复:

第5步:(只是为了仔细检查)

回复:

第 6 步:

第 7 步:

回复:

如步骤 1

第 8 步:

回复:

第 9 步:

回复:

如第 8 步

0 投票
0 回答
979 浏览

android - 如何使用 php (phpseclib) 生成 java/android 签名块文件 (.RSA)

我正在尝试使用 php 在服务器上完全签署一个 android .apk 文件。

为此,我需要在 .apk 文件(本质上是一个 ZIP 文件)内生成 META-INF 目录中包含的文件。在 php 中创建 .MF 和 .SF 文件相当简单。但是,我正在努力处理 .RSA 文件。

不幸的是,我对密码学一无所知,甚至不了解基本术语。我只知道一些 PHP 基础知识,但我经验不足,也没有必要的库/函数的概述。因此,即使经过数小时的研究,我仍然无法创造出任何有用的东西。

据我了解, .RSA 文件应包含:

  • .SF 文件的数字签名
  • 带有签名者公钥的证书

此文件应为 PKCS7 格式。

我试图为此使用 phpseclib。我能够从互联网上的示例创建一个私钥/公钥/证书,但我绝对无法将它们全部放在一起形成 .RSA 文件。

Stackoverflow 是一个很好的信息来源,我可能在这里找到了我问题的大部分答案。但是,现在我被困住了。

你们能给我一些php示例代码(理想情况下)吗?甚至是一些伪代码/算法……这甚至可以用 phpseclib/php 完成吗?是否有必要进行一些“位移”?如果可以的话,请不要指点我jarsigner的源码……我看了,对java不太了解,只会带来更多的问题。

更新:

当您不知道自己实际在做什么时,很难朝着正确的方向前进:D…</p>

这是我迄今为止尝试过的,但没有任何成功:

  1. 我用 ssh 生成了公钥/私钥对

    ssh-keygen -t rsa1

  2. 我使用之前生成的密钥对来创建带有 phpsceclib 的自签名证书,如下所述:http: //phpseclib.sourceforge.net/new/x509/tutorial.html#selfsigning

  3. 我将证书($signcert)、私钥($privkey - 来自 ssh 生成的文件)和用于签名的数据($infilename –> .SF 文件)传递给 openssl 函数 openssl_pkcs7_sign():

    openssl_pkcs7_sign ($infilename , $outfilename , $signcert , $privkey , array(), PKCS7_DETACHED|PKCS7_BINARY);

但是,生成的结果似乎是一种称为 PEM 格式(人类可读)的格式。除了它不是最终的 .RSA 文件应该是二进制 DER(甚至不知道那是什么……只是猜测它应该是 DER)这一事实之外,它还存在一些其他问题:

  • 结果还包含 .SF 文件的内容(要自己签名的原始数据)
  • 它包含一些不必要的标题信息作为常规文本字符串
  • 行以“\n”结尾,而不是“\r\n”</li>
  • 签名(不确定结果中的其他数据是什么,但可能是签名)是 base64 编码的

我至少在这里做点什么吗?还需要采取哪些其他步骤才能使其发挥作用?根据上述链接创建证书时应该设置哪些属性?如何将结果传输到二进制 DER 格式的 .RSA 文件,其中包含 .SF 签名和带有签名者公钥的证书?

更新 2:

我终于有时间继续我的小实验了。我浏览了我的代码并尝试更改不同的参数。最后我发现了问题。看来我只需要在 openssl_pkc7_sign() 中打开 PKCS7_NOATTR 标志。

这是代码

我只有时间在几个样本上检查它,但它现在似乎正在工作。这是一个非常简单的演示www.balabeng.com/?q=appsigner

0 投票
3 回答
9300 浏览

openssl - openssl_sign(): supplied key param cannot be coerced into a private key

I have googled to search answer for these problem.but I'm not able to find proper solution for my question as many answer was specific to problem related.

when I tried to create digital signature of content using XMLSecurityKey and openssl_sign I'm getting warning and signature was not created.

openssl_sign is throwing error as :

And my code is:

And my $configValues['privkey'] is in xml format.Any suggestions?

0 投票
3 回答
3924 浏览

php - Composer 未安装在 Windows 7 上

我正在使用 Windows 7 32 位WAMP 2.4 & PHP 5.4.16

我在 WAMP 扩展中启用了 openssl 并在php.ini此处启用C:\wamp\bin\php\php5.4.16

当我尝试安装 Composer 时出现以下错误

我试图禁用windows防火墙它仍然没有工作

0 投票
0 回答
483 浏览

php - 使用 php-openssl 为 docx 创建数字签名

我需要为可填写的表格创建数字签名。这意味着当用户填写表格时,他必须签署文档。使用他自己的私钥,我们的服务器将使用公钥检查他的私钥。我研究了它,但我找不到真正的答案。我将使用 php-openssl 并且可以填写表格。我可以用这个代码创建一个密钥对;