这是我需要的(语言:C# 4):
我正在建立一个您可以提交投诉的系统。提交投诉后,您将获得一个唯一的 9 位数字,用于在系统中识别您的投诉。
出于安全(通过默默无闻的安全)的目的,我不希望票证 ID 是连续的。但我确实想使用数据库来生成顺序 ID。
所以我需要的是一个双向快速的单射函数:序号到我的票号,然后从票号返回到序号。
这样我ticketId
的 in 数据库是连续的,但在向用户显示之前我会对其进行混淆,同样,当我从用户那里得到一个数字时,我会对其进行去混淆处理并使用它在数据库中查找投诉。
混淆部分不需要太复杂,对普通大众来说“不够明显”即可。
例如,我可以简单地更改值的位数,这将得到我(对于 8 位值):
0 -> 0
1 -> 128
2 -> 192
3 -> 64
4 -> 160
5 -> 96等等