我有一个难题已经困扰了我一段时间,尽管看起来应该已经有人做过了。我的问题是需要用密码学安全的(即非连续的!)id替换顺序AUTO_INCREMENT(或等效的)主键,但同时我想保持顺序主键的性能优势:保证未使用的下一个ID、可聚簇性等。
一种简单的方法似乎是实现一个加密伪随机置换生成器,将2^N空间唯一映射到2^N而无碰撞,并具有初始化向量(IV)。
虽然这可以在外部实现,但是这需要存储和原子访问状态(排列位置或上一个ID),这意味着在外部实现会极其低效(它相当于对每个INSERT运行后续 UPDATE table SET crypto_id = FN_CRYPTO(autoincrement_id) WHERE autoincrement_id=LAST_INSERT_ID()
)。
您知道是否有任何商业用途中的数据库中实现了上述描述的内容吗?