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

php - 如何在php中使用私钥和公钥加密和解密大字符串?

我想使用公钥加密大字符串并存储在文件中。然后读取文件内容并使用私钥解密。我怎样才能做到这一点。php.ini 中是否有任何默认函数或代码可用?

0 投票
0 回答
182 浏览

php - openssl_pkcs7_verify 可以接受文件指针吗?

我正在使用openssl_pkcs7_verify()( http://www.php.net/manual/en/function.openssl-pkcs7-verify.php ) 来验证带有 smime (p7s) 信息的签名邮件内容。这个函数对我的目的很有用,但我想将它与存储在内存包装器(php://memory 或 php://temp)上的内容一起使用,openssl_pkcs7_verify()只接受文件路径作为参数而不接受文件指针(就像我可以从fopen('php://memory', ...) ),我尝试使用以下代码:

但显然 $filename包含,而不是对与调用php://memory相关的内存的特定引用(而不是引用的内存),因此代码会生成一个错误,即无法在参数 3 上传递的路径上写入。它迫使我使用临时文件,但可能是极大地改进了内存内容而非文件内容的使用,避免了 I/O 延迟和其他问题。fopen$filepopenssl_pkcs7_verify()

0 投票
4 回答
3772 浏览

php - 如何使用 PHP 的 OpenSSL 扩展验证 CA?

在命令行中,我可以通过键入验证证书是否由受信任的 CA 颁发

openssl 验证 mycert.pem

我如何对 PHP 的 OpenSSL 库做同样的事情?PHP 有一个带有openssl_verify许多额外参数的函数:

如何使用相应的 PHP 函数重复该简单的命令行操作?

0 投票
1 回答
1982 浏览

perl - DSA 签名:openssl_sign (php) 与 Crypt::OpenSSL::DSA (perl) 不匹配

目前在我的项目中,DSA 签名是通过 perl 生成的,并通过 perl 在其他服务器上进行验证。它工作正常。

几天前,我尝试将一项服务从 perl 迁移到 php,发现 php 会生成符号,而 perl 无法验证。此外,如果我在控制台中生成登录(使用 openssl 命令)- perl 还说签名无效。所以,它看起来像这样:

PHP 签名 <= ok => 控制台签名 <= 不行!=> perl 签名

为什么会这样?

用于签名的私钥是相同的。

Perl代码:

PHP代码:

控制台代码(验证):

完全迷路了.. 第二天我找不到任何答案:(你能建议一种挖掘方法吗?

0 投票
1 回答
440 浏览

php - PHP中的C++ DSS签名验证

我有一个 C++ 应用程序来签名和验证一些数据,现在我想在 PHP 中验证数据,以下是我用于数据签名的 C++ 代码:

我试过 PHP openssl_verify() 但我无法正确输入公钥;在 C++ 中,我有一个公钥 blob 的字节数组,但我不知道如何从该数组中提取公钥,并将其与 php openssl 一起使用。

但我从 openssl_get_publickey 得到“错误:0906D06C:PEM 例程:PEM_read_bio:no start line”

我的 key.pem 文件内容:

先感谢您。

0 投票
1 回答
1778 浏览

php - PHP服务器端IAB验证openssl_verify总是返回0

我正在使用以下函数(服务器端 php)来验证 IAB v3 事务:

我从 android 应用程序传递:

我有一种感觉,这可能与我正在传递的签名有关。我正在使用以下 Android 方法对其进行编码,因为没有编码我得到一个错误:

我正在传递网址

到服务器:

它似乎总是返回 false ($result=0),有人知道为什么吗?如何传递未编码的签名,或者我应该使用哪种编码?

0 投票
0 回答
4612 浏览

php - 在 PHP 中实现 secp256k1 (ECDSA)(用于比特币)

对于热衷于投票的人和/或更接近的人:如果您认为这与 SO 无关,请指出其他 StackExchange 站点,在该站点上这个问题更合适。


如何在 PHP 中实现 ECDSA 曲线secp256k1

或者更确切地说:是否有任何解决方案 - 即。包含的专业课程 - 已经完成了吗?

我可以看到有很多可用于其他语言(JavaScript、Python 等)的开源库、类和东西,但我整个下午都在谷歌上搜索一些/任何 PHP 解决方案,但......什么也没有!.

这是我的一个比特币项目,我需要一种如何从私钥生成公钥的方法......然后我想生成最终的比特币地址

我知道如何生成私钥(不用担心它是否是随机的——这里不是问题)而且我有 256 位十六进制和 WIF 表示法。但是下一步:想出一个公钥,然后是最终的比特币地址,这对我来说是个问题,因为我几乎没有密码学背景,而且我知道解决方案是以某种方式利用 secp256k1。

这是我到目前为止所拥有的:

tl;博士如何在 PHP 中实现这一点?(..和 privKey->pubKey转换之前)

http://i.stack.imgur.com/U2neg.png

我知道...

  • http://github.com/mikegogulski/bitcoin-php .. 它非常简洁,有很多有用的方法和方法如何通过 RPC 控制bitcoind,但不幸的是,缺少可以处理privKey->pubKey机制的纯 PHP 方法。
  • http://bitcoinphp.com/ .. 我在那里找不到它。
  • PHP 中的 openssl 扩展,但不幸的是,OPENSSL-PHP 文档中提到的唯一摘要方法是“ecdsa-with-SHA1”,如果我错了,请纠正我,但我需要“ecdsa-with-SHA256”或其他东西像那样 (?)
  • 我什至尝试从bitcoinjs.js转换算法,但是凭借我的加密知识,我无法提取任何内容的要点。我根本不理解那些曲线和它们的位操作以及其他令人毛骨悚然的东西。

我正在寻找纯 PHP 解决方案。我不是在寻找使用运行 bitcoind 的 shell,然后为密钥对解析 JSON,然后......

为什么没有一段代码可以完全在 PHP 中处理?或者在那里?!:)

0 投票
0 回答
250 浏览

php4 - openssl_sign 和 PHP 4 不同消息的相同签名

我必须在 php 4 中维护一个必须通过 openssl_sign 发送签名数据的应用程序。问题是对于相同大小的不同数据,签名总是相同的。例如。这段代码:

输出这个:

uANYD6qKuvlcyK2svarB0ESPO7qLa75cEIhCmjkTF23cwveSE+Mxuhsl7JKjOEOPf7v8mCoTLmdlm/2RDD0Nabdpi+5Ez8Di8dFNpXtMVRByJvewOOGxTgYt/1XPIqe+dvLunkqtl8dHkRhtzuBHay1dKqnk53Y

uANYD6qKuvlcyK2svarB0ESPO7qLa75cEIhCmjkTF23cwveSE+Mxuhsl7JKjOEOPf7v8mCoTLmdlm/2RDD0Nabdpi+5Ez8Di8dFNpXtMVRByJvewOOGxTgYt/1XPIqe+dvLunkqtl8dHkRhtzuBHay1dKqnk53Y

有谁知道这个问题的原因是什么?

0 投票
1 回答
2238 浏览

php - 是否可以将 rsa 公钥转换为 x509 公钥?

我有以下公钥:

PHP 无法使用该公钥。我发现它应该是 x509 格式才能在 php 中使用。是否可以将此密钥转换为 x509 格式?据我了解,结果应如下所示:

UPD:确实有必要生成 x509 证书,而不仅仅是公钥。

0 投票
2 回答
1469 浏览

javascript - 使用 RSA 技术在 JavaScript 中加密字符串并在 PHP 中解密

我正在尝试在 JavaScript 中加密一些文本,然后将其发送到 PHP(等:使用 Ajax)以在那里解密并保存(等:在 MySQL 中)。

到目前为止,这是我的代码:

在 JavaScript 中:

我正在使用这个库进行加密: http ://travistidwell.com/blog/2013/02/15/a-better-library-for-javascript-asymmetrical-rsa-encryption/

在 PHP 中:

现在 PHP 的答案每次都是空的。有什么想法可以完成这项工作吗?

感谢您的时间!