如何使用' defuse / php-encryption'?

时间:2015-06-25 20:28:27

标签: php encryption

我已经下载' defuse / php-encryption'来自GitHub。

我尝试了这里建立的例子:How do you Encrypt and Decrypt a PHP String?但我没有成功。

" test.php的"与" Crypto.php"在同一文件夹中:

.itemsContainer {
    background:red; 
    float:left;
    position:relative
}
.itemsContainer:hover .play{display:block}
.play{
  position : absolute;
    display:none;
    top:20%; 
    width:40px;
    margin:0 auto; left:0px;
    right:0px;
    z-index:100
} 

结果是:

  

致命错误:Class' Crypto'找不到   第10行/home/zideesdubj/www/_tests2enfants/_test_session/php-encryption-master/php-encryption-master/src/test.php

在你的帮助下,我更换了#34; require(" Crypto.php");" by" require(' php-encryption-master / autoload.php'); 但它的结果相同:

  

致命错误:Class' Crypto'在第10行的/home/zideesdubj/www/_tests2enfants/_test_session/php-encryption-master/test.php中找不到

你有没有任何基本的例子可以使用' defuse / php-encryption' ?

我知道这是一个假人的问题,但我在网上找不到任何答案或教程。

谢谢!

3 个答案:

答案 0 :(得分:1)

$ ciphertext永远不会是===到$ plaintext,只是一个抬头

要获得正确的命名空间,我必须使用: $key = \Defuse\Crypto\Crypto::CreateNewRandomKey(); $message = 'We are all living in a yellow submarine'; $ciphertext = \Defuse\Crypto\Crypto::Encrypt($message, $key); $plaintext = \Defuse\Crypto\Crypto::Decrypt($ciphertext, $key);

答案 1 :(得分:0)

提问者引用的SO问题显然是在与Composer集成之前针对旧版本的软件包编写的。 [引用的答案已被重写]

替换:

require ("Crypto.php");

使用:

require('vendor/autoload.php');

请记住,用一粒盐来回答这些问题。仅仅因为答案被接受并不一定意味着它是正确的或当前的。

答案 2 :(得分:0)

我确实遇到了同样的问题并且修复了它。

如果从GitHub存储库(https://github.com/defuse/php-encryption/releases)下载“defuse-crypto.phar”,请使用

require_once("defuse-crypto.phar");

然后使用

use Defuse\Crypto\whichever_one_you_want_to_load

这很有效,而且我一直试图让它工作很长一段时间。这是一个迟到的答案,但任何试图这样做的人,它确实有效。

你可能不应该这样做,但如果我找到了你应该做的更好的方法,那么我将编辑这个答案。