2011-11-03 87 views
0

將某些圖像捆綁到.jar包(Java + Swing)中時,保護裏面的JPG文件以防止用戶訪問包並將上述圖像複製到他們自己的?Java:在.jar包中加密JPG文件

+2

圖像是否顯示在應用程序中?如果是這樣,什麼是阻止最終用戶採取屏幕截圖?再見了!如果有人遞交了一個應用對於那些試圖限制我對資源的訪問的人來說,我會掀起一些機器人去瀏覽每個頁面/圖像,然後做一個截圖。將它們保存到磁盤。完成。 –

回答

-1

您可以獲取圖像的字節表示形式,並將其另存爲其他文件擴展名,或者您可以使用javax.crypto軟件包對其進行加密,但我認爲它不是必需的。

+0

更改文件擴展名有什麼作用? – CodesInChaos

+0

您可以將其更改爲用戶無法打開的.something擴展名,將其視爲正常序列化,將Image對象保存爲二進制文件,在這種情況下,組成該文件的字節的順序與「真實」的圖像,除此之外,我認爲通過對圖像文件結構進行加密來嘗試和混淆並不是一件有趣的事情...... –

+3

無論您給予的擴展名是什麼,典型的圖像查看器都可以打開圖像。他們使用魔術字節來查看文件是一個jpg圖像。例如,當我用irfanview打開一個重命名的jpg文件時,它告訴我這是一個帶有錯誤文件擴展名的jpg,並提供重命名它。 – CodesInChaos

2

您可以在將它們包含在JAR中之前加密它們,然後在應用程序中顯示(或以其他方式使用)之前解密。這個簡單的實現將要求你將私鑰與你的應用捆綁在一起,如果'用戶'足夠確定,這基本上否定了加密。或者,您可以在應用啓動時從託管網站下載密鑰。不是萬無一失的,它會拖拽你的應用程序的性能。

或者您可以將圖像拆分爲隨機幀並在顯示之前合併它們。基本上可以隱藏數據。

有一百萬種方法可以說實話,哈哈,但實際上,它們都不是萬無一失的,而且肯定比它的價值更麻煩。畢竟你打算最終顯示圖像是否正確? '用戶'在哪一點可以做一個屏幕抓取。

如果你是關心你的版權,那麼我建議你爲你的照片加上水印,所以如果你發現有人使用它們,你有法律追索權。