我需要在php和javascript中使用通用的哈希方法,例如MD5或MD5,如果不是MD5,则需要使用salt,但是要从php和javascript生成相同的结果。
我想做的是,我有一系列问题要问用户,而用户必须回答这些问题,但是要使其快速并避免从服务器检查用户答案的延迟,我也想加载问题的答案。并在用户回答时在javascript中进行匹配。现在,我需要将来自php服务器的答案进行哈希处理,当我将其与用户答案匹配时,我将对用户答案进行哈希处理,并将其与服务器中的哈希答案进行匹配。
可能吗?
这仅是混淆您的工作。大概是想防止用户作弊。这样做并依靠客户端代码将无法安全地工作。
当客户端浏览器收到答案哈希值和相应的盐时,用户可以简单地用暴力破解正确的答案。可能答案的数量非常小,以至于用户可以尝试用接收到的盐尝试每个可能的答案,并通过比较散列来找到匹配的答案。
既然只不过是混淆,为什么要使其复杂化?只需使用Base 64或类似的东西对正确答案进行编码。这将防止大多数用户作弊。如果实际上要确保没有用户可以作弊,则需要将选定的答案发送到服务器。
如果您真的想按计划进行,那么目前JavaScript最快的MD5哈希器是SparkMD5,而不是您需要用例的速度。CryptoJS还实现MD5,而PHP具有此md5()
功能。所有这些实现都是兼容的。您只需要确保使用相同的编码(字符编码和Hex / Base64)即可。
用的盐的结构可以是md5(answer || salt)
其中||
表示连接。这并不是真正的节省,但是无论如何您都没有关系。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句