当前位置: 首页 > 面试题库 >

是否有任何通常被认为可信赖的SHA-256 javascript实现?

谷梁玺
2023-03-14
问题内容

我正在为论坛编写登录名,并且需要先在javascript中对密码客户端进行哈希处理,然后再将其发送到服务器。我在弄清楚我可以信任的SHA-256实现方面遇到麻烦。我期望每个人都可以使用某种权威的脚本,但是我发现很多负载不同的项目都有自己的实现。

我意识到使用他人的加密货币始终是一种信念的飞跃,除非您有资格自己审查它,并且没有“信任”的通用定义,但这似乎很常见且重要,应该有某种意义关于使用什么的共识。我只是天真吗?

编辑,因为注释中包含了很多内容:是的,我们在服务器端再次进行了更严格的哈希处理。客户端哈希不是我们保存在数据库中的最终结果。客户端哈希是因为人类客户端请求它。他们没有给出具体的原因,也许他们只是喜欢过度杀伤。


问题答案:

在斯坦福JS加密库包含SHA-256的实现。尽管JS中的加密并没有像其他实现平台那样经过严格的审查,但该平台至少部分是由DanBoneh开发的,并在一定程度上是由DanBoneh开发的,DanBoneh是加密技术中公认的可靠名称。,这表示该项目受到实际上知道自己在做什么的人的监督。该项目也得到了NSF的支持。

但是,值得指出的是……
如果在提交之前对客户端的密码进行哈希处理,则哈希值就是password,原始密码就变得无关紧要了。攻击者仅需拦截哈希即可模拟用户,并且如果该哈希未经修改地存储在服务器上, 则服务器 将以纯文本格式存储 真实
密码(哈希)



 类似资料:
  • 我意识到使用别人的密码总是一种信念的飞跃,除非你有资格自己审查它,而且“可信”没有普遍的定义,但这似乎是一件足够普遍和重要的事情,应该在使用什么上有某种共识。我只是天真吗? 编辑,因为它在评论中出现了很多:是的,我们再次在服务器端做了一个更严格的哈希。客户端散列不是我们保存在数据库中的最终结果。客户端散列是因为人类客户端请求它。他们没有给出具体的原因,可能他们只是喜欢过度杀戮。

  • 编译器必须为constexpr的不同路径生成多个函数,这取决于函数的调用方式。所以也许它在使用过载分辨率。 被接受的建议没有提到“sfinae”或“过载分辨率”。 所以我很好奇这两个概念是否适用于“constexpr if”。

  • 首先让我说,“记录器”是指任何一类负责向用户或程序员报告诊断或进度信息的对象。根据这个定义,“记录器”将包括图形用户界面上的反馈,如进度条。 我们一再被告知要避免全局状态,尤其是全局可变状态(GMS)。因为伐木者天生是可变的,所以我最近试图让我的伐木者“不是全球性的”。我尝试了各种策略(比如通过构造函数向记录器注入引用)。我终于意识到,所有的方法都是把口红贴在猪身上。 日志记录器必须是所有类(或至

  • 这个问题不是关于Rollbar tho:)

  • 所以,我一直在读C++标准,找到了[defns.Undefined](3.27,在我正在读的C++17草案中,请注意,当我在这里引用C++17时,我在其他标准中发现了类似的措辞)--这是未定义行为的定义。我注意到这样的措辞(强调我的): 注意:当本国际标准省略任何行为的明确定义时,或者当程序使用错误的构造或错误的数据时,可能会出现未定义的行为 现在,想想看,这有点道理。这有点像是说,如果标准没有给

  • 然而,我不确定我是否理解他的观点,因为根据我的理解,当我们有一个父类引用变量指向子类对象时,一个行为被认为是多态的(侧重于动态多态性)。 然后在运行时获取父类变量所指向的实际对象,并调用其方法,如这里所解释的那样。 但是,我没有在我的项目中使用上向转换(即用对象类变量初始化POJO类)。 因此,我的问题是--尽管父类(对象)从未用作引用变量,但重写toString()是否被视为多态性? 我在Sta