我不想将原始用户ID返回到前端。很多人通过生成随机ID并检查它们是否已经在数据库中来解决此问题。我想找到一种在1到1的已知范围内映射数字的方法。通过这种方法,我仍然可以在内部使用自动递增的ID,但可以将伪随机映射的ID返回到前端。
我可以确定性地将所有数字从1转换为N,但我想知道是否有更有效的方法。
您可以选择一个随机数,并使用按位XOR操作在前端ID和数据库ID之间切换。
这可能很容易进行逆向工程,但是非常容易使用。
这是JavaScript中的示例:
const seed = 123;
const internalIds = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(internalIds.join(','));
const frontIds = internalIds.map(id => id ^ seed);
console.log(frontIds.join(','));
const recoveredIds = frontIds.map(id => id ^ seed);
console.log(recoveredIds.join(','));