2011-03-16 135 views
0

我正在寻找一种模糊我存储在我的应用程序中的图像的方法,目前正在考虑Base46编码。Android/iOS上的Base64编码图像

我需要的开销最小,或者如果可能的话,文件系统上的标准文件的性能提升。

有人可以评论base64编码图像(png)的可行性,并随后在目标平台上使用(解码?)吗?

谢谢。

回答

0

我相信你明白Base64不会欺骗任何真正想获得你的位图的人。

Jon Skeet是对的,Base64非常适合以可读格式对二进制数据进行编码,但在这里不会对您有所帮助。与您的密码异或会更快,并且不会增加任何大小的开销。

如果你真的想混淆你的位图,我建议你将它们存储在“raw”资源文件夹中。通过这样做,您将能够保持处理不同外形因素(ldpi,hdpi,...)的漂亮Android抽象。 扩展ImageView类,直接与R.raw.filename id一起工作,并在那里读取文件/解码流/创建位图。通过这样做,如果需要,您将能够轻松回滚到标准的处理方式。

+0

你应该解释一下,如何将它们存储在原始文件中可以帮助解决混淆问题?我们不要求你提到的“抽象”(hdpi/ldpi/mdpi/xhdpi),并且实际上明确要求我们加载的图像都不会处理这个,因为它在我们的应用程序中被明确照顾。 – Hamid 2011-03-16 18:11:52

+0

在原始文件夹中存储混淆的位图不会帮助您执行任何混淆处理。它只会帮助您以一种干净的方式进行操作,使您可以在开发周期中轻松启用/禁用它,而不会丢弃平台的独立分辨率独立功能。 – pcans 2011-03-17 10:19:13

+0

我明白了,所以,根据我以前的回应,它并没有真正的帮助,因为我明确地不希望平台的解决方案独立功能。 – Hamid 2011-03-17 11:33:58

2

你试图防范什么样的攻击? Base64相当容易识别在空间方面有潜在的重大影响(每幅图像需要额外的33%的空间)。

仅仅从数据中可以看出,某种移动XOR难以发现,但它不足以保护真正重要的资产。

+0

意图是停止机会主义者,我们不打算花费大量时间或资源,因为坦率地说,没有“保护”是安全的。我们主要关心的是最小的开销,尽可能接近零开销。我之前已经读过,在单个base64编码文件“块”中存储多个图像就是这样一种方式,但我不确定适合性。 – Hamid 2011-03-16 18:10:11

+1

@Hamid:如果你真的想要“快速和简单”的开销很小,保持它的二进制格式,只是XOR的一切与恒定值。这足以使文件无效,就像png“按原样”一样,并且应该采用绝对最少的编码。它也不会有任何空间开销。 – 2011-03-16 18:25:22

+0

与仅仅在每个图像文件中存储特定数量的字节相比,这会更好吗? – Hamid 2011-03-16 18:56:16