简体   繁体   English

使用phpseclib的php中的RSA解密错误

[英]RSA decryption in error in php using phpseclib

Hi I am trying to decrypt the message using phpseclib. 嗨,我正在尝试使用phpseclib解密消息。 The error i am getting is 我得到的错误是

"Class 'phpseclib\Crypt\Base' not found"

I am using decrypt code from below url: 我正在使用以下网址的解密代码:

http://www.sitepoint.com/encrypt-large-messages-asymmetric-keys-phpseclib/ http://www.sitepoint.com/encrypt-large-messages-asymmetric-keys-phpseclib/

It looks like the version you're using is using namespaces. 看起来您正在使用的版本正在使用名称空间。 Which means you're using either phpseclib 2.0 or the version in the master branch on github. 这意味着您正在使用phpseclib 2.0或github上master分支中的版本。 What you'll need to do, in this case, is to use a PSR-4 compliant autoloader. 在这种情况下,您需要做的是使用符合PSR-4的自动装带器。

Best approach would be just use Composer to install phpseclib as a dependency. 最好的方法是仅使用Composer将phpseclib安装为依赖项。 eg. 例如。 do composer require phpseclib/phpseclib:~2.0 via the CLI in your projects directory and then do this: composer require phpseclib/phpseclib:~2.0在项目目录中通过CLI composer require phpseclib/phpseclib:~2.0 ,然后执行以下操作:

<?php 
require __DIR__ . '/vendor/autoload.php' 

use phpseclib\Crypt\RSA; 

$rsa = new RSA();

But if you don't want to do that you should also be able to do this: 但是,如果您不想这样做,那么您也应该可以这样做:

<?php
include('autoload.php'); // https://raw.githubusercontent.com/composer/composer/master/src/Composer/Autoload/ClassLoader.php 

$loader = new \Composer\Autoload\ClassLoader(); 
$loader->addPsr4('phpseclib\\', __DIR__.'/path/to/phpseclib'); 
$loader->register();

use \phpseclib\Crypt\RSA;

$rsa = new RSA();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM