-
三 如果添加随机字符是在客户端完成的,那么如何将此随机信息分发给所有客户端? 如果有人试图使用公共信息亭,它如何知道用户的随机信息? —— 巴尔马 5月15日14:30 -
19 对于“我刚刚提出的密码存储或加密的想法好吗?”,答案是“不,使用行业标准的密码散列或加密,它是由专家开发的”。 永远不要自己滚。 —— 乔什(Josh) 5月15日16:02 -
14 “散列,比如MD5” -我知道这只是一个例子,但无论如何我都要提到它:永远不要使用普通散列来存储密码。 使用慢速迭代的密码散列和salt。 好的专用密码哈希算法包括(从好到坏):argon2、scrypt、bcrypt、PBKDF2。 并避免使用MD5(和SHA1)。 —— 马塞尔姆 5月15日17:16 -
2 不安全不是安全。 —— 用户207421 5月15日23:09 -
5 所以,显而易见的问题是,如果你在预散列的密码中添加一些随机内容,你如何重建随机元素以验证密码是否正确? 如果答案是您将随机内容与散列密码一起存储在数据库中,那么您基本上只需要重新激活盐渍。。。 —— 西蒙·吉尔德 5月16日5:27
4个答案
-
-
三 -
1 @mentalllurg我将使用更广泛的应用程序。 在OP的设计中,试图保密的不仅仅是算法类型。 柯克霍夫斯的更广泛应用表明,整个设计应该在已知的情况下继续存在,而且这个设计有很多秘密。 5月15日8:09 -
-
三 @JamesT有时,由于惯性、便利性或其他与实用性相关的原因,而非技术优化,现状依然存在。 提问没有害处,你可能会得到这样的答案:“理论上可能更好,但这就是为什么不可行。” —— 巴尔马 5月16日15:00
密码系统应该是安全的,即使除了密钥之外,系统的所有信息都是公开的。
-
感谢@schroeder的指出。 我现在明白了问题的所在。我仍会坚持我的第二点,即作为一名攻击者,我手中掌握着散列算法和填充算法(它可能会被混淆,但它就在客户端的某个地方),这减少了我破解数据库和计算散列的工作量。 现在,作为一名攻击者,我只需要观察图案并找出垫子的位置。 完成后,我可以像往常一样执行暴力攻击,并尝试以其他人的身份登录。 5月16日10:16 -
此外,服务器将用于验证哈希的方法也非常不清楚,我假设两个服务器将在它们之间进行通信,并使用一些公共id检索填充。我假设服务器将生成id并将带有id的填充存储在单独的服务器上,如果我错了,请纠正我。 5月16日10:20 -
-
-
每个用户添加的字符数不同!
[...]
这取决于两件事,然而,散列算法是保留的 秘密,