2012-05-17 24 views
4

我怎樣才能加密上傳的圖像文件(如www.yahoo.com/images/image1.jpg)?我想將它保存在不在數據庫中的文件夾中。如何在PHP中加密和解密圖像文件?使用<strong>PHP</strong>和解密時,它顯示在瀏覽器

+1

這會消耗嚴重的處理能力嗎?你確定你不想考慮其他選項? – Baba

+0

你爲什麼要加密你的圖像? –

+0

,因爲人們可能直接訪問來自網址的照片。我希望人們登錄網站並訪問照片。 –

回答

-1

所有上傳的文件都存儲在PHP中的臨時文件夾。

此臨時文件路徑是通過$ _FILES [「文件」] [「tmp_name的值」]變量的形式提交後由PHP設置訪問。

然後,可以使用編碼的編碼(未加密)算法等BASE64_ENCODE()中的圖像數據,然後將其解碼用於使用BASE64_DECODE顯示()。

<?php 
     $image_binary = fread(fopen($_FILES["file"]["tmp_name"], "r"), 
           filesize($_FILES["file"]["tmp_name"])); 

     $encoded_image = base64_encode($image_binary); 
     //Save the image file with file data set as $encoded_image 
?> 

另一件事要記住的是,你的PHP腳本是可見的與管理員權限(例如,您的主機)的人。所以他們會知道你使用了什麼加密方法,並且可能會找到解密加密文件的方法。

更好的加密策略在:Best way to use PHP to encrypt and decrypt passwords?

+0

請注意,使用base64,您的圖像將佔用比圖像大約33%的存儲空間。 –

+3

更何況base64不加密...... – James

+0

@James哈哈!我擔心的更大的問題。 –