gpt4 book ai didi

PHP mcrypt_module_open 导致 500 错误

转载 作者:可可西里 更新时间:2023-11-01 00:49:30 25 4
gpt4 key购买 nike

我有这个用于解密文件的 PHP 函数(使用 PHP 5.3),它以前工作得很好,但现在我搬到了 Amazon EC2(基于 Amazon Linux Image 2012.3),似乎 mcrypt install 是已损坏或根本不可用。

初步测试表明,文件解密确实适用于较小的文件,但不适用于 20MB 以上的文件(这不是特别大的文件)。

我将问题追踪到导致错误 500 的这一行(我没有得到 mcrypt_module_open is undefined,< strong>只有 500 个服务器错误)

$td = mcrypt_module_open ('rijndael-128', '', 'cbc', '');

奇怪的是,我检查了/etc/php.ini,我根本看不到 mcrypt(当然假设我正在查看正确的 php.ini/path!)

PHP 代码/函数是:

function decrypt_file ($inputfile, $outputfile)
{
$key = FILE_KEY; // <-- assign private key
$buffersize = 16384;

// Open $inputfile for reading binary
$input = fopen ($inputfile, 'rb');

// Error opening $inputfile, return false
if (!$input)
return false;

// Open $outputfile for writing binary
$output = fopen ($outputfile, 'wb');

// Error opening $outputfile, return false
if (!$output)
return false;

// Open the cipher module
$td = mcrypt_module_open ('rijndael-128', '', 'cbc', '');

// Read the IV from $inputfile
$iv = fread ($input, 16);

// Compute the SHA512 of the IV (salt) and Key and use 32 bytes (256 bit) of the result as the encryption key
$keyhash = substr (hash ('sha512', $iv . $key, true), 0, 32);

// Intialize encryption
mcrypt_generic_init ($td, $keyhash, $iv);

while (!feof ($input))
{
$buffer = fread ($input, $buffersize);

// Encrypt the data
$buffer = mdecrypt_generic ($td, $buffer);

// Remove padding for last block
if (feof ($input))
{
$padsize = ord ($buffer[strlen ($buffer) - 1]);
$buffer = substr ($buffer, 0, strlen ($buffer) - $padsize);
}

// Write the encrypted data to $output
fwrite ($output, $buffer, strlen ($buffer));
}

fclose ($input);
fclose ($output);

// Deinitialize encryption module
mcrypt_generic_deinit ($td);

// Close encryption module
mcrypt_module_close ($td);

return true;
}

有人知道怎么解决吗?我将 PHP 5.3 与 CodeIgniter 2.1 一起使用(认为这很可能与 CodeIgniter 不相关)

最佳答案

您似乎没有安装 mcrypt。尝试运行:

sudo yum install php-mcrypt

...从您实例上的命令行。

关于PHP mcrypt_module_open 导致 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10599244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com