2011-02-23 106 views
1

我的用戶在某些情況下可以查看存儲他們輸入數據的數據庫表的Web版本。由於各種原因,我需要包含所有存儲的數據,包括每個記錄的整數標記,這些標記在數據中封裝相鄰等等(這是爲了在運行時提高速度和方便性)。但不是在webview中一對一地暴露他們,我想要一個被稱爲「保留」的混淆字段,並且包含一個難以理解的字符串,代表我可以輕鬆編碼和解碼的那些標記。如何在C++/Objective C中高效地執行此操作?如何混淆/去混淆整數屬性?

謝謝!

+0

讓我進一步解釋 - 數據正在谷歌電子表格中提供給用戶(「webview」可能有誤導性),並且由於我希望能夠將數據讀回原始移動應用程序,因此我希望在電子表格中包含這些額外的「私人」數據,而不會分散用戶的注意力或易於操作。 – ed94133 2011-02-23 23:35:38

回答

1

爲什麼不將每個字段轉換爲十六進制,並將它們作爲字符串追加並保存該值?

只要你總是以相同的順序附加字符串,將它們分開並將它們轉換回數字應該是微不足道的。

+0

這是我最喜歡的方法,非常簡單。我將創建一個像「%x%x%x%x%x」,flag1,flag2,flag3,flag4(校驗和= constval + flag1 + flag2 + flag3 + flag4)的字符串。可能的整數值範圍足夠小,以至於我可以依賴十六進制中的標誌值只有1個字符,因此很容易分開。謝謝! – ed94133 2011-02-24 07:11:50

2

是否有必要將該字段以可視方式展示給用戶,還是僅需要將其無損捕獲到webview的HTML內容中?如果可能,你可以在每行中包含標誌作爲隱藏的輸入元素,即<input type=「hidden」 …

+0

我認爲如果它是一個真正的網頁視圖,它會很好,但請參閱上面的說明。 – ed94133 2011-02-23 23:36:27

0

使用對稱加密(example)對值進行編碼和解碼。當然,只有你應該知道關鍵。
或者,Assymetric RSA更強大的加密功能,但效率更低,使用起來更復雜。

注:我大約需要這種設計的「種種原因」 ...古玩

+0

謝謝 - 我可能會調查這一點(並參見上面的說明)。我懷疑它是否可能會過度殺傷。這並不是什麼祕密,主要是我只是想避免分散用戶的注意力,避免在我不知情的情況下使用這些值。如果他們把4改成5,我就說不出來。我在想一個好的基本編碼算法可以告訴我,如果aH7c1已經改爲aH7c2(因爲後者無法解碼),我需要重新計算鄰接關係。有了真正的加密,我也擔心會陷入模糊的法律領域,而且不必要的。 – ed94133 2011-02-23 23:41:28

0

乘以7的標誌整數,加3,並轉換爲基礎-36。要檢查結果字符串是否被修改,請將其轉換回base-2,並檢查結果模數7是否仍然爲3.如果是,則除以7得到標誌。請注意,這受到重播攻擊 - 用戶可以複製任何有效的字符串。

-1

只需計算CRC-32(或類似的)並將其附加到您的價值。如果您的價值已被破壞,那麼這將以非常高的概率告訴您。

+0

downvote的原因? – 2011-02-25 02:07:54