在PHP和JavaScript中使用带有盐的MD5

索海尔

我需要在php和javascript中使用通用的哈希方法,例如MD5或MD5,如果不是MD5,则需要使用salt,但是要从php和javascript生成相同的结果。

我想做的是,我有一系列问题要问用户,而用户必须回答这些问题,但是要使其快速并避免从服务器检查用户答案的​​延迟,我也想加载问题的答案。并在用户回答时在javascript中进行匹配。现在,我需要将来自php服务器的答案进行哈希处理,当我将其与用户答案匹配时,我将对用户答案进行哈希处理,并将其与服务器中的哈希答案进行匹配。

可能吗?

Artjom B.

这仅是混淆您的工作。大概是想防止用户作弊。这样做并依靠客户端代码将无法安全地工作。

当客户端浏览器收到答案哈希值和相应的盐时,用户可以简单地用暴力破解正确的答案。可能答案的数量非常小,以至于用户可以尝试用接收到的盐尝试每个可能的答案,并通过比较散列来找到匹配的答案。

既然只不过是混淆,为什么要使其复杂化?只需使用Base 64或类似的东西对正确答案进行编码。这将防止大多数用户作弊。如果实际上要确保没有用户可以作弊,则需要将选定的答案发送到服务器。


如果您真的想按计划进行,那么目前JavaScript最快的MD5哈希器是SparkMD5,而不是您需要用例的速度。CryptoJS还实现MD5,而PHP具有此md5()功能。所有这些实现都是兼容的。您只需要确保使用相同的编码(字符编码和Hex / Base64)即可。

用的盐的结构可以是md5(answer || salt)其中||表示连接。这并不是真正的节省,但是无论如何您都没有关系。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章