2011-11-03 45 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中之前加密它们,然后在应用程序中显示(或以其他方式使用)之前解密。这个简单的实现将要求你将私钥与你的应用捆绑在一起,如果'用户'足够确定,这基本上否定了加密。或者,您可以在应用启动时从托管网站下载密钥。不是万无一失的,它会拖拽你的应用程序的性能。

或者您可以将图像拆分为随机帧并在显示之前合并它们。基本上可以隐藏数据。

有一百万种方法可以说实话,哈哈,但实际上,它们都不是万无一失的,而且肯定比它的价值更麻烦。毕竟你打算最终显示图像是否正确? '用户'在哪一点可以做一个屏幕抓取。

如果你是关心你的版权,那么我建议你为你的照片加上水印,所以如果你发现有人使用它们,你有法律追索权。