我想生成 1M 随机(出现)唯一的字母数字键并将它们存储在数据库中。每个键的长度为 8 个字符,并且仅使用子集“abcdefghijk n pqrstuvxyz 和 0-9”。
字母 l、m、o 和 w 被丢弃。由于打印空间有限,省略了“m 和 w”,因为每个键都将在非常小的空间内打印在产品上。删除 m 和 w 可以将字母大小增加 2pt,从而提高可读性。l 和 o 被删除,因为它们在当前打印尺寸下很容易与 1、i 和 0 混淆。我们做了一些测试,字符 1、i 和 0 总是被正确读取,l 和 o 有很多错误。出于与“m 和 w”相同的原因,省略了大写字母。
那么为什么不是序列呢?几个原因: 密钥可以在之后注册,我们不希望任何人猜测序列中的下一个密钥并注册其他人的密钥。外观:我们不需要客户和竞争对手就知道我们只运送了几千把钥匙。
是否有一种实用的方法来生成密钥,确保每个密钥的唯一性并将它们存储在数据库中?谢谢!