使用数学函数模糊自动增量DB id

时间:2015-08-24 18:16:44

标签: mysql database web-applications primary-key obfuscation

我有自动增加ID,因为主要是我的所有数据库表,如用户,订单等。我不想将这些ID暴露给最终用户,因为他们可以迭代ID可以访问用户详细信息。相反,我想使用双向数学函数,这样我就可以在不存储数据库映射的情况下对id进行模糊处理和去混淆。

function obfuscate(id)
{
    constSeed = 1203793
    return (id*constSeed)
}

function deobfuscate(bigid)
{
    constSeed = 1203793
    return (bigid/constSeed)
}

我甚至可以通过base36转换器运行bigid,以获得更小的字母数字ID,可公开曝光。

这种方法有问题吗?还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

如果您不希望他们访问ID,可能只在$ _SESSION变量中使用它们或者沿着那些行使用它们。

如果最终用户可以看到数据,即使您对数据进行哈希或加密, 它不安全。