Javascript 你有什么理由不';为了安全起见,你不能执行自己的算法来扰乱ID吗?
我计划实现我自己的非常简单的“哈希”公式,为一个有多个用户的应用程序增加一层安全性。我目前的计划如下:Javascript 你有什么理由不';为了安全起见,你不能执行自己的算法来扰乱ID吗?,javascript,python,sql,security,backend,Javascript,Python,Sql,Security,Backend,我计划实现我自己的非常简单的“哈希”公式,为一个有多个用户的应用程序增加一层安全性。我目前的计划如下: 用户创建一个在后端生成ID的帐户。ID通过一个公式运行(比如ID*57+8926-36*7,或者其他同样随机的东西)。然后我将新的用户ID和新的“哈希”数字发送回前端,并将它们存储在localStorage中 用户尝试访问一个安全区域(比如设置页面,这样他们就可以更改自己的设置) 我向后端发送两个值:它们的ID和散列数。我通过相同的公式运行ID,检查它是否与我收到的哈希值匹配。如果检查通过,他
localStorage
中localStorage
中更改自己的ID以访问另一个用户的设置页面,那么他们实现这一目标的唯一方法就是猜测公式是什么。他们可以很容易地猜出一个用户ID,但是猜出相应的数字是ID*57+8926-36*7的结果似乎不太可能技术堆栈:在FE上进行反应,在BE上进行Python,SQL db。这篇文章中缺少的两个实哈希属性是
- 输入的简单变化会导致输出的巨大变化
- 所有哈希都具有相同的长度
如果信息不是特别敏感,只需为每个用户分配一个随机生成的128位数字。有人猜测有效用户号码的可能性几乎为零。这个问题可能更适合。好建议,我将交叉发布,谢谢!对于后续的任何人来说,Stack Exchange Info Sec线程就在这里:看起来您正试图重新创建一个经过身份验证的会话方案。为什么不使用适当的会话处理?请不要在StackExchangeThese上交叉张贴,因为这两个属性在这里是不相关的。事实上,普通MD5在这里是无用的,因为任何能够猜到有效ID的攻击者也可以轻松计算其MD5。这种情况下需要的是ID的不可预测性,这可以通过为用户分配一个随机的128位uuid来实现。