首先,这可能是一个复杂的问题(我不确定这是否是正确的问题)但我一直在考虑用户登录服务的安全方式(对于这个例子我们将使用用户名和密码来访问网站,而服务器本身不直接存储这些中的任何一个。
我在学校的哈希课程中想到了这一点,所以如果有一个简单的原因可以解释为什么网站没有使用它,我就不会感到惊讶,但我没有找到任何在线使用的例子。这将在服务器端使用一种形式的非对称加密,以将用户名和密码组合成将存储在服务器上的一个唯一“userLoginID”。类似于此的代码将在服务器端使用,其中“encrypt”将是单向加密函数:
userLoginID == "331845364410495642424788" # Just an example
if (encrypt(inputtedUsername,inputtedPassword) == userLoginID)
return True
else
return False
如果任何人有任何与此相似的过程的例子或解释为什么它不常用,那就太好了。使用此方法,如果需要,用户将具有不同的“显示名称”和“用户ID”,其他人/服务器将引用它们。我个人看不到使用这个系统的任何缺点,所以如果有更多服务器安全知识的人可以解释这类系统的缺陷,我希望如此。
据我所知,黑客必须强行使用用户名和密码,即使他们可以访问完整的用户登录ID列表,他们也无法对它们做任何事情,但我是这肯定是无法完美的,因为我只是随心所欲地想出来。谢谢,我很欣赏这可能不是最好的地方或方式来问这个。
处理此场景的当前标准方法非常相似,只是没有包含用户名。创建帐户时,将使用密码哈希算法(argon2,bcrypt等)对用户密码进行哈希处理。此哈希与用户名一起存储。与您的建议的唯一区别是用户名包含在此哈希中。
很多时候,保持用户名“秘密”并不是什么大不了的事。我不是说你的想法(经过一些调整)不会起作用,我说这可能没那么有用,或者只在特定情况下有用。