包含 autoload.php 后 phpseclib 2.0 不工作
phpseclib 2.0 not working after including autoload.php
我正在使用 Composer,这是我第一次尝试使用 phpseclib。我找不到关于它的文档或任何 wiki,就像没有信息一样。
我尝试在 Whosebug 上搜索,但仍然无法正常工作。
这是我的 .php 文件:
<?php
require __DIR__ . '/../vendor/autoload.php';
$loader = new Composer\Autoload\ClassLoader();
$loader->addPsr4('phpseclib\', __DIR__ . '/../vendor/phpseclib/');
$loader->register();
use phpseclib\Crypt\RSA;
$rsa = new Crypt_RSA();
$plaintext = 'terrafrost';
$rsa->loadKey($privatekey);
$signature = $rsa->sign($plaintext);
$rsa->loadKey($publickey);
echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified';
?>
这是错误:[23-Mar-2020 14:04:51 UTC] PHP Fatal error: require(): Failed opening required '[23-Mar-2020 00:53:12 UTC] PHP Fatal error: Uncaught Error: Class 'Crypt_RSA' not found in /home/123/domains/asd.com/public_html/Auth/test.php:93
- 这个 .php 位于:public_html/Auth
- 自动加载位于:public_html/vendor/autoload.php
- Composer 文件夹位于:public_html/vendor/composer
我需要做的就是RSA 签名和验证。还需要能够为 RSA 生成密钥对。
如果有任何关于 phpseclib 的文档或 wiki,请告诉我。我在他们的 Github 上找不到任何东西。他们 link 到此页面 Sourceforge 但它是针对 1.0 的,我只能找到 1 个 2.0 的示例。这就像我见过的最糟糕的文档库。
如果有人知道更好的库请告诉我,我使用这个而不是 openssl 因为我需要 PSS 填充。
假设您正确设置了 Composer,那么试试这个:
<?php
require __DIR__ . '/vendor/autoload.php';
use phpseclib\Crypt\RSA;
$rsa = new RSA();
$plaintext = 'terrafrost';
$rsa->loadKey($privatekey);
$signature = $rsa->sign($plaintext);
$rsa->loadKey($publickey);
echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified';
?>
与您 post 中的代码的主要区别在于,它没有执行 $rsa = new Crypt_RSA();
,而是执行 $rsa = new RSA();
。它还删除了不必要的自动加载内容。毫无疑问,您从 http://phpseclib.sourceforge.net/2.0.html but that code doesn't include __DIR__ . '/vendor/autoload.php'
- it includes ClassLoader.php 获得了重命名为 autoload.php.
的额外代码
Please if there is any documentation or wiki about phpseclib tell me. I couldn't find anything on their Github. They link to this page Sourceforge but it's for 1.0, I only could find 1 example for 2.0.
当您访问任何带有示例的页面时,您应该会看到一个如下所示的弹出窗口:
Select 2.0 然后你会看到 2.0 的例子。
It's like the worst documented library I've ever seen.
我猜你没看过https://www.openssl.org/docs/哈哈。无论如何,对此有两条评论:
- 如果您不喜欢这些文档,您可以通过在 https://github.com/phpseclib/docs
创建 PR 或创建问题来自行改进它
- 据我了解,对于 3.0 分支,文档正在使用 https://docusaurus.io/
从头开始重写
我正在使用 Composer,这是我第一次尝试使用 phpseclib。我找不到关于它的文档或任何 wiki,就像没有信息一样。
我尝试在 Whosebug 上搜索,但仍然无法正常工作。
这是我的 .php 文件:
<?php
require __DIR__ . '/../vendor/autoload.php';
$loader = new Composer\Autoload\ClassLoader();
$loader->addPsr4('phpseclib\', __DIR__ . '/../vendor/phpseclib/');
$loader->register();
use phpseclib\Crypt\RSA;
$rsa = new Crypt_RSA();
$plaintext = 'terrafrost';
$rsa->loadKey($privatekey);
$signature = $rsa->sign($plaintext);
$rsa->loadKey($publickey);
echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified';
?>
这是错误:[23-Mar-2020 14:04:51 UTC] PHP Fatal error: require(): Failed opening required '[23-Mar-2020 00:53:12 UTC] PHP Fatal error: Uncaught Error: Class 'Crypt_RSA' not found in /home/123/domains/asd.com/public_html/Auth/test.php:93
- 这个 .php 位于:public_html/Auth
- 自动加载位于:public_html/vendor/autoload.php
- Composer 文件夹位于:public_html/vendor/composer
我需要做的就是RSA 签名和验证。还需要能够为 RSA 生成密钥对。
如果有任何关于 phpseclib 的文档或 wiki,请告诉我。我在他们的 Github 上找不到任何东西。他们 link 到此页面 Sourceforge 但它是针对 1.0 的,我只能找到 1 个 2.0 的示例。这就像我见过的最糟糕的文档库。
如果有人知道更好的库请告诉我,我使用这个而不是 openssl 因为我需要 PSS 填充。
假设您正确设置了 Composer,那么试试这个:
<?php
require __DIR__ . '/vendor/autoload.php';
use phpseclib\Crypt\RSA;
$rsa = new RSA();
$plaintext = 'terrafrost';
$rsa->loadKey($privatekey);
$signature = $rsa->sign($plaintext);
$rsa->loadKey($publickey);
echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified';
?>
与您 post 中的代码的主要区别在于,它没有执行 $rsa = new Crypt_RSA();
,而是执行 $rsa = new RSA();
。它还删除了不必要的自动加载内容。毫无疑问,您从 http://phpseclib.sourceforge.net/2.0.html but that code doesn't include __DIR__ . '/vendor/autoload.php'
- it includes ClassLoader.php 获得了重命名为 autoload.php.
Please if there is any documentation or wiki about phpseclib tell me. I couldn't find anything on their Github. They link to this page Sourceforge but it's for 1.0, I only could find 1 example for 2.0.
当您访问任何带有示例的页面时,您应该会看到一个如下所示的弹出窗口:
Select 2.0 然后你会看到 2.0 的例子。
It's like the worst documented library I've ever seen.
我猜你没看过https://www.openssl.org/docs/哈哈。无论如何,对此有两条评论:
- 如果您不喜欢这些文档,您可以通过在 https://github.com/phpseclib/docs 创建 PR 或创建问题来自行改进它
- 据我了解,对于 3.0 分支,文档正在使用 https://docusaurus.io/ 从头开始重写