我不想制作 1000 个密码并将它们提供给用户。密码包含 6 位数字 - 它们看起来像随机的 6 位数字。
当用户进来时,除了这个密码之外没有任何信息,我想验证它。
我可以遍历数据库来查找这个密码,但是我想将这个操作的难度从 O(N) 降低到 O(1),其中 N 是密码的数量。
是否有任何方法可以通过简单的检查方法生成 1000 个“随机”密码?
UPD:现在我正在考虑进行加密。例如(Python)
key = 'top_secret'
N = 1000
passwords = [encrypt(i, key) for i in range(N)]
def check(s):
try:
return int(decrypt(s, key))<1000
except ValueError:
return False
但这我想有一个更好的解决方案
UPD2:3 位和 6 位仅为示例。它们可能是 64 位和 128 位数字