2016-10-11 6 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

それはmcryptのを使用するのが最善ではありません、それはアバンダンあり、年間で更新されていないだけでない、標準PKCS#7(旧姓のPKCS#5)パディングをサポートしていません。バイナリデータでも使用できない標準のヌルパディング。 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 

今その作業を完全に

関連する問題