我正在尋找一種模糊我存儲在我的應用程序中的圖像的方法,目前正在考慮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