问题标签 [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 投票
4 回答
46362 浏览

php - 如何使用公钥/私钥加密 php 中的数据?

我有一小段数据(小于 1kb),我想让用户代理在从我的站点发送它们时将它们传递给其他站点。为了让其他站点验证我是创建字符串的人,我想到了两个选项。

  1. 服务器回复我确认(如 paypal、openid 等)
  2. 我使用公钥/私钥来证明我发送了消息(如 PGP、DKIM 等)

我不想设置 HMAC,因为这意味着我必须为每个站点使用自定义密钥,这会很痛苦。

在这两个选择中,#2 似乎可以节省带宽,这使它看起来是一个更好的选择。

那么如何使用 PHP 设置公钥/私钥加密,有什么缺点吗?

0 投票
1 回答
8691 浏览

php - AES 在 PHP 中使用 OpenSSL 加密/在 Node.js 中解密

我正在使用 PHP 和 Nodejs 使用 OpenSSL 进行对称加密。PHP 使用 OpenSSL 库,Node.js 解密基于实现的加密。问题是 Node.js 中的解密文本只是部分正确

用于加密的 PHP 函数

nodejs中的解密

结果

我猜这个问题可能与填充有关 - 但老实说:我不知道。

感谢您阅读帮助!

0 投票
1 回答
96 浏览

php - 添加加密方法?

加密是一个我几乎没有任何经验的话题,直到我明年在大学真正了解它(不包括简单密码的基本知识)。我希望将来能更好地理解它们,但现在我只想在不知道内部细节的情况下将它们实现到我的应用程序中。

设想

我正在尝试通过向其中添加加密来保护我的 PHP/NodeJS 应用程序之一。我这样做是为了以安全的方式在 NodeJS 和 PHP 之间共享数据。

PHP 服务器 -> 需要能够加密和解密数据

NodeJS 服务器 -> 只需要能够解密数据

可能的解决方案

我花了几个小时寻找一个体面的解决方案来解决我的问题。我尝试了许多代码示例,但这似乎是迄今为止我遇到并测试过的最好的代码示例。

从代码中可以看出,已经为 NodeJs 和 PHP 构建了解密方法。到目前为止,与我测试的结果相比,两者似乎都运行良好。我的问题已经解决了一半。:-)

我现在要做的是弄清楚我们如何使用 PHP 代码实现加密功能。我试过这个:

但我得到的输出是:aUZaNnFlWWV5M0dObTE1U3pxMENwdz09当我实际上应该得到 edata 的值作为输出时:U2FsdGVkX18M7K+pELP06c4d5gz7kLM1CcqJBbubW/Q=

有谁知道为什么这个输出不同?我显然做错了什么,但我只是无法弄清楚我应该做什么,因为该 PHP 代码中发生了很多事情......如果有人能给我一些指导,那就太好了。谢谢!

0 投票
2 回答
2996 浏览

php - 获取 openssl 证书到期日期

我已经通过openssl_x509_parse()函数解析了 openssl 证书,结果得到了一个数组。

现在我需要获取该证书的到期时间。在解析的数组中,我有validTo_time_t一个包含有效 unix 时间戳的元素。但是如何确定这个时间戳属于哪个时区呢?

所以我无法获得真正的到期时间,因为那个时间戳,因为它意味着不同时区的不同日期。

0 投票
1 回答
2422 浏览

php - openssl_free_key 期望参数 1 是资源

我有这个代码:

我收到这个警告:

我怎样才能摆脱它或我做错了什么?

0 投票
18 回答
300558 浏览

php - 如何启用 PHP 的 openssl 扩展来安装 Composer?

我正在尝试在 WAMP 设置中安装 Laravel。我收到一条警告消息,提示我没有启用我已经在 WAMP 中完成的openssl 。

这是消息的屏幕截图。

在此处输入图像描述

0 投票
1 回答
951 浏览

php - 查看 openssl_random_psuedo_bytes() 返回的字符串

为什么不echo openssl_random_pseudo_bytes(12)打印任何内容,但如果我将它与另一个字符串连接它会显示输出?根据手册,返回类型openssl_random_pseudo_bytes是字符串,为什么会有问题?我尝试使用它进行类型转换,(string)但它没有用。

0 投票
5 回答
8346 浏览

php - 在 PHP 中调用未定义函数 openssl_public_encrypt()

我正在使用 WAMP 2.4.4。为了加密字符串,我使用了“ MyEncryption ”类,但错误是:

调用未定义函数 openssl_public_encrypt()

在使用之前我必须添加任何特殊的库吗openssl_public_encrypt()

0 投票
4 回答
7602 浏览

php - 在 openssl_public_encrypt() 中获取密钥参数不是有效的公钥错误

$publicKey = "../ssh/public/pub"; $plaintext = "要加密的字符串";

上面的代码生成以下错误

openssl_public_encrypt() [http://php.net/function.openssl-public-encrypt]:密钥参数不是有效的公钥 [APP/controllers/supportservice_controller.php,第 144 行]

我使用 openssl 创建了密钥:

生成一个 1024 位 rsa 私钥,要求输入密码对其进行加密并保存到文件 openssl genrsa -des3 -out /path/to/privatekey 1024

生成私钥的公钥并保存到文件

openssl rsa -in /path/to/privatekey -pubout -out /path/to/publickey

0 投票
2 回答
2191 浏览

php - openssl_verify 在 Eclipse php 项目中的 openssl.php 中没有 OPENSSL_ALGO_SHA256 定义

我正在尝试在使用 Eclipse PDT 的 php 项目中将 openssl_verify 与 OPENSSL_ALGO_SHA256 一起使用。但我无法验证,因为核心 API 的 openssl.php 文件中未定义 OPENSSL_ALGO_SHA256。我通过指定 PHP 5.4 创建项目,正如PHP 文档 中提到的那样,该标志是在 PHP 5.4.8 中添加的。我不确定我在这里做错了什么。谁能告诉我如何让这个工作?

谢谢