在PHP和JavaScript中使用salt的MD5

在PHP和JavaScript中使用salt的MD5,javascript,php,security,hash,md5,Javascript,Php,Security,Hash,Md5,我需要一个php和javascript中的常用哈希方法,类似MD5,或者如果不是MD5,则使用salt,但从php和javascript生成相同的结果 我想做的是,我有一系列的问题,我会问用户,用户必须回答,但为了加快速度,避免延迟从服务器上检查用户答案,我还想用问题加载答案,并在用户回答时用javascript匹配它们。现在,我需要从php服务器获取散列答案,当我将它们与用户答案进行匹配时,我将散列用户答案,并将其与服务器的散列答案进行匹配 有可能吗?这只不过是混淆了你在做什么。大概你想阻止用

我需要一个php和javascript中的常用哈希方法,类似MD5,或者如果不是MD5,则使用salt,但从php和javascript生成相同的结果

我想做的是,我有一系列的问题,我会问用户,用户必须回答,但为了加快速度,避免延迟从服务器上检查用户答案,我还想用问题加载答案,并在用户回答时用javascript匹配它们。现在,我需要从php服务器获取散列答案,当我将它们与用户答案进行匹配时,我将散列用户答案,并将其与服务器的散列答案进行匹配


有可能吗?

这只不过是混淆了你在做什么。大概你想阻止用户作弊。这样做和依赖客户端代码将无法安全地工作

当客户端浏览器接收到答案散列和相应的盐时,用户可以简单地强制执行正确的答案。可能答案的数量非常少,用户可以用收到的salt尝试每个可能的答案,并通过比较散列找到匹配的答案

既然这只不过是混淆,为什么要把它复杂化呢?只需将正确答案编码为64或类似的数字。这将防止大多数用户作弊。如果您确实想确保没有用户可以作弊,则需要将所选答案发送到服务器


如果您真的想继续执行您的计划,那么现在最快的JavaScript MD5哈希程序不是您需要用例的速度。还实现了MD5和PHP所具有的功能。所有这些实现都是兼容的。您只需确保使用相同的编码(字符编码和十六进制/Base64)


带有salt的结构可以是
md5(答案| | salt)
,其中
|
表示串联。这并不是真正的节约,但在您的情况下,这并不重要。

当然有可能。还有别的吗?@ArtjomB。谢谢,你知道怎么做吗?谢谢,你说得对。它并不完全安全,但我不想让他们看得太清楚。因为这些问题会有时间限制,所以他们没有足够的时间深入研究。