2016-10-11 2 views
1

다음 코드는 내 로컬 xampp 서버에서 완벽하게 작동합니다. 하지만 업로드 및 aws ec2 서버에서 작동하지
stream_filter_append($fcrypt, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts) 코드입니다. 파일이 암호화되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?stream_filter_append aws 서버에서 PHP가 작동하지 않습니다.

$fin = fopen($input_stream, "rb"); 
$fcrypt = fopen($aes_filename, 'wb'); 
$opts = array('iv'=>'','key'=>$key, 'mode'=>'ctr'); 
if(!stream_filter_append($fcrypt, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts)){ 
    echo "encryption failed"; 
    exit; 
}else{ 
    while (!feof($fin)) 
    { 
     fwrite($fcrypt, fread($fin, 8192)); 
    } 
    fclose($fcrypt); 
    fclose($fin); 
} 
+0

작업, 그것은 밴던은, 몇 년 동안 업데이트되지 않은 표준 PKCS # 7 (노나의 PKCS # 5) 패딩을 지원하지 않습니다 만 비입니다 바이너리 데이터로도 사용할 수없는 표준 null 널링. mcrypt는 2003 년으로 거슬러 올라가는 많은 [버그] (https://sourceforge.net/p/mcrypt/bugs/)를 가지고 있습니다. 대신 [defuse] (https://github.com/defuse/php-encryption) 또는 [RNCryptor] (https://github.com/RNCryptor), 그들은 완벽한 솔루션을 제공하고 있으며 유지 관리되고 있으며 정확합니다. – zaph

+0

PHP와 안드로이드 모두에서 작동하는 크립 터가 필요합니다. 어느 것이 가장 좋고 더 낫습니까? –

답변

0

RNCryptor 가능한 크로스 플랫폼 및 여러 언어에 대한, 또한 임의 IV, 암호 확장 및 암호화 인증이 완료됩니다. 현재의 개발 및 지원하에 잘 심사 받고 있습니다.

0

내 코드가 작동하지 않는 실제 문제는 스트림 필터 이름 'mcrypt.rijndael-128'과 관련이 있습니다. 다음 코드를 사용하여 aws 서버에 'mcrypt'를 설치했습니다.

sudo yum install php56-mcrypt 
sudo service httpd restart 

지금은 완벽 그것은 Mcrypt 라이브러리를 사용하지 않는 것이 좋습니다

관련 문제