Android/iOS上的Base64编码图像

Android/iOS上的Base64编码图像,android,image,ios,base64,Android,Image,Ios,Base64,我正在寻找一种混淆我存储在应用程序中的图像的方法,目前正在考虑Base46编码 我需要一些开销最小的东西,或者如果可能的话,在文件系统上比标准文件的性能提升 有人能评论一下base64编码图像(png)并随后在目标平台上使用(解码?)的可行性吗 谢谢。你想防范什么样的攻击?Base64相当容易识别,并且在空间方面具有潜在的重大影响(每个图像将占用额外的33%空间) 仅从数据中很难发现某种类型的异或移位,但对于真正重要的资产来说,它并不能提供足够的保护。我相信您知道Base64不会愚弄任何真正想要

我正在寻找一种混淆我存储在应用程序中的图像的方法,目前正在考虑Base46编码

我需要一些开销最小的东西,或者如果可能的话,在文件系统上比标准文件的性能提升

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


谢谢。

你想防范什么样的攻击?Base64相当容易识别,并且在空间方面具有潜在的重大影响(每个图像将占用额外的33%空间)


仅从数据中很难发现某种类型的异或移位,但对于真正重要的资产来说,它并不能提供足够的保护。

我相信您知道Base64不会愚弄任何真正想要获取位图的人

Jon Skeet是对的,Base64很适合以可读格式对二进制数据进行编码,但在这里并不能真正帮助您。针对您的密码执行XOR将更快,并且不会增加任何大小开销

如果您真的想混淆位图,我建议您将其存储在“原始”资源文件夹中。通过这样做,您将能够保持处理不同形状因素(ldpi、hdpi等)的良好Android抽象。
扩展
ImageView
类以直接使用
R.raw.filename
id并在那里读取文件/解码流/创建位图。通过这样做,您将能够在需要时轻松回滚到标准的操作方式。

请注意,在Android应用程序内存中存储多个位图时,可能会遇到内存问题。在android中处理位图时,OutOfMemoryErrors似乎是一个经常出现的问题。举个例子:

我们的目的是阻止机会主义者,我们无意在这方面花费大量时间或资源,因为坦率地说,没有“保护”是安全的。我们主要关心的是最小的开销,尽可能接近零开销。我以前读过,在一个base64编码的文件“chunk”中存储多个图像是这样一种方式,但我不确定它是否合适。@Hamid:如果你真的想要“快速简单”且开销很小,请将其保持为二进制格式,并用一个常量值对所有内容进行异或运算。这足以使文件作为png“原样”无效,并且应该采取绝对最小的编码。它也不会有任何空间开销。与在每个图像文件中只对一定数量的字节进行异或运算相比,这会更好吗?您能解释一下将它们存储在raw中如何有助于避免溢出吗?我们不需要您提到的任何“抽象”(hdpi/ldpi/mdpi/xhdpi),事实上明确要求我们加载的任何图像都不能处理这个问题,因为它在我们的应用程序中被显式处理。将模糊位图存储在raw文件夹中不会帮助您进行任何模糊处理。它只会帮助您以一种干净的方式来完成,允许您在开发周期中轻松启用/禁用它,而不会丢掉平台的分辨率无关功能。我明白了,因此,根据我之前的回答,它并没有真正的帮助,因为我确实不想要平台的分辨率无关功能。