2012-03-19 14 views
1

私はmp3ファイルを読み込んで暗号化するスクリプトを持っています。このファイルを復号化してbase64に変換してhtml5で再生できるようにします。mcryptでバイナリmp3を暗号化/復号化するmimetypeがありません

キー1がページに保存され、静的、KEY2は、私が使用したテストのために、各ファイルに対して一意になります。ここでは

$key1 = md5(time()); 
$key2 = md5($key1.time()); 

は、私のエンコードのPHPコードである:ここで

//Get file content 
$file = file_get_contents('test.mp3'); 
//Encrypt file 
$Encrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key1, $file, MCRYPT_MODE_CBC, $key2); 
$Encrypt = trim(base64_encode($Encrypt)); 
//Create new file 
$fileE = "test.mp3e"; $fileE = fopen($file64, 'w') or die("can't open file"); 
//Put crypted content 
fwrite($fileE, $Encrypt); 
//Close file 
fclose($fileE); 

デコードされたファイルは同じサイズですが、MIMEタイプはありません。

//Get file content 
$fileE = file_get_contents('test.mp3e'); 
//Decode 
$fileDecoded = base64_decode($fileE); 
//Decrypt file 
$Decrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key1, $fileDecoded, MCRYPT_MODE_CBC, $key2); 
$Decrypt = trim($Decrypt); 
//Create new file 
$file = "test.mp3"; $file = fopen($file, 'w') or die("can't open file"); 
//Put crypted content 
fwrite($file, $Decrypt); 
//Close file 
fclose($file); 
+1

「MIMEタイプなし」とはどういう意味ですか?復号化されたファイルは元のファイルと同じですか(同じハッシュが生成されますか?どのように "MIMEタイプなし"と判断しましたか? – deceze

+0

なぜあなたはそれらを暗号化していますか? –

+1

変数$ file64の値は何ですか? –

答えて

1

私はあなたのw栄ファイルがこのコードに見てみましょう:

$fileE = "test.mp3e"; $fileE = fopen($file64, 'w') or die("can't open file"); 

は、その後、あなたは、復号化しようとしているファイルを確認してください。

$fileE = file_get_contents('test.mp3e'); 

私はあなたがファイル名に間違いがあると思います。変数$ file64の値が何であるかは分かりませんでした。 $ fileEのファイル名の値を "test.mp3e"と指定しても、$ file64で定義した内容が得られます。 :)

+0

申し訳ありませんあなたの回答を受け入れたとマークするのを忘れていました;) –

関連する問題