0
1)情況:我用sqlitecipcher爲Android,通過commonsguy as a library module友情提供存儲文本加密數據庫如何加密表查詢行大小
2)要求:我需要通知用戶空間有多大一個入口(「入口」應該在這裏讀爲「數據庫錶行」)在磁盤上採取
據我所知,SQLite(並因此sqlitecipher包裝)不提供API來檢查大小行,並在讀取條目後檢查字節數將給出未加密文本的大小,以便信息不正確。
當然,我可以再次AES數據並檢查大小,但這將浪費巨大的處理能力。
是否有任何可靠的公式可以計算文字AES加密後字符數量的變化?或者其他任何建議如何檢查加密表的行大小?
我懷疑這很難做到可靠。我會作弊,並根據測試提出一些啓發式,在其中添加具有不同值的條目並查看手動生成的文件大小增量。有些東西從入口到入口不會有太大變化(例如,int的大小)。有些東西會改變很多(例如,BLOB的大小),但是您應該能夠想出一個公式,該公式的大小與組件的大小相近。要獲得額外的信用,請使用迴歸分析來提出公式。 :-) – CommonsWare
另請參閱:http://stackoverflow.com/questions/13230267/check-how-much-space-a-single-row-takes-in-sqlite – CommonsWare
謝謝,基於測試的估計是一種可能的解決方案,將不得不檢查它。我只將文本存儲在加密數據庫中。但是,不會因密碼(這是'sqlitecipher'中的加密/解密密鑰)的大小而變化嗎? – Droidman