0
我有自動增量ID作爲主要的是我所有的數據庫表,如用戶,訂單等,我不希望公開這些ID給最終用戶,因爲它們可能會遍歷標識可以訪問用戶的詳細信息。相反,我想使用雙向數學函數,這樣我就可以在不存儲數據庫映射的情況下對標識進行混淆和去混淆。模糊處理自動增量DB ID,用數學函數
function obfuscate(id)
{
constSeed = 1203793
return (id*constSeed)
}
function deobfuscate(bigid)
{
constSeed = 1203793
return (bigid/constSeed)
}
我甚至可以運行通過base36轉換器bigid,得到一個更小的字母數字ID,可曝光公開。
這種方法有問題嗎?還有其他建議嗎?
您可以不使用auto_increment並以受控隨機方式生成id。 (如果可以預測出你正在混淆的是什麼類型的數字,那麼它可以更容易地對它們進行反混淆處理或猜測有效的混淆值。)...但是,知道某個ID不應該是主要的安全問題......用戶不應該有這種必要的途徑來利用這些知識。 – Uueerdo