我正在寻找一种模糊我存储在我的应用程序中的图像的方法,目前正在考虑Base46编码。Android/iOS上的Base64编码图像
我需要的开销最小,或者如果可能的话,文件系统上的标准文件的性能提升。
有人可以评论base64编码图像(png)的可行性,并随后在目标平台上使用(解码?)吗?
谢谢。
我正在寻找一种模糊我存储在我的应用程序中的图像的方法,目前正在考虑Base46编码。Android/iOS上的Base64编码图像
我需要的开销最小,或者如果可能的话,文件系统上的标准文件的性能提升。
有人可以评论base64编码图像(png)的可行性,并随后在目标平台上使用(解码?)吗?
谢谢。
我相信你明白Base64不会欺骗任何真正想获得你的位图的人。
Jon Skeet是对的,Base64非常适合以可读格式对二进制数据进行编码,但在这里不会对您有所帮助。与您的密码异或会更快,并且不会增加任何大小的开销。
如果你真的想混淆你的位图,我建议你将它们存储在“raw”资源文件夹中。通过这样做,您将能够保持处理不同外形因素(ldpi,hdpi,...)的漂亮Android抽象。 扩展ImageView
类,直接与R.raw.filename
id一起工作,并在那里读取文件/解码流/创建位图。通过这样做,如果需要,您将能够轻松回滚到标准的处理方式。
你试图防范什么样的攻击? Base64相当容易识别和在空间方面有潜在的重大影响(每幅图像需要额外的33%的空间)。
仅仅从数据中可以看出,某种移动XOR难以发现,但它不足以保护真正重要的资产。
意图是停止机会主义者,我们不打算花费大量时间或资源,因为坦率地说,没有“保护”是安全的。我们主要关心的是最小的开销,尽可能接近零开销。我之前已经读过,在单个base64编码文件“块”中存储多个图像就是这样一种方式,但我不确定适合性。 – Hamid 2011-03-16 18:10:11
@Hamid:如果你真的想要“快速和简单”的开销很小,保持它的二进制格式,只是XOR的一切与恒定值。这足以使文件无效,就像png“按原样”一样,并且应该采用绝对最少的编码。它也不会有任何空间开销。 – 2011-03-16 18:25:22
与仅仅在每个图像文件中存储特定数量的字节相比,这会更好吗? – Hamid 2011-03-16 18:56:16
请注意,在Android中的应用程序内存中存储多个位图时,可能会遇到内存问题。 OutOfMemoryErrors在处理android中的位图时似乎是一个反复出现的问题。下面是一个例子:outofmemoryerror-bitmap-size-exceeds-vm-budget-android
你应该解释一下,如何将它们存储在原始文件中可以帮助解决混淆问题?我们不要求你提到的“抽象”(hdpi/ldpi/mdpi/xhdpi),并且实际上明确要求我们加载的图像都不会处理这个,因为它在我们的应用程序中被明确照顾。 – Hamid 2011-03-16 18:11:52
在原始文件夹中存储混淆的位图不会帮助您执行任何混淆处理。它只会帮助您以一种干净的方式进行操作,使您可以在开发周期中轻松启用/禁用它,而不会丢弃平台的独立分辨率独立功能。 – pcans 2011-03-17 10:19:13
我明白了,所以,根据我以前的回应,它并没有真正的帮助,因为我明确地不希望平台的解决方案独立功能。 – Hamid 2011-03-17 11:33:58