gpt4 book ai didi

php - 使用 Javascript 来确认用 PHP 生成的哈希?

转载 作者:行者123 更新时间:2023-11-30 05:59:04 27 4
gpt4 key购买 nike

我需要一种在 PHP(crypt() 或 md5())中创建可由 Javascript 复制的散列的方法。

即。

  1. 使用 PHP(使用预先安排的私有(private)盐)创建“hello world”的散列
  2. 将散列和纯文本放在两个隐藏的表单域中
  3. 表单通过 ajax 提交到 Node.js 服务器
  4. 使用 Javascript 对纯文本重复散列(同样使用私有(private)盐)并检查散列是否匹配

我可以使用 JS 中的 native 函数或常见的(可靠的)第 3 方脚本来完成此操作吗?我宁愿不从 Node 服务器调用 PHP。

最佳答案

在浏览器中,您可以使用 CryptoJS创建 HMAC(基于哈希的消息验证代码)。挑战在于分发您的“预先安排好的私有(private)盐”。

这是 CryptoJS 文档中的示例代码:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-md5.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-sha1.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-sha512.js"></script>
<script>
var hash = CryptoJS.HmacMD5("Message", "Secret Passphrase");
var hash = CryptoJS.HmacSHA1("Message", "Secret Passphrase");
var hash = CryptoJS.HmacSHA256("Message", "Secret Passphrase");
var hash = CryptoJS.HmacSHA512("Message", "Secret Passphrase");
</script>

在 Node.js 上,使用 Crypto模块:

require("crypto")
.createHmac("sha256", "Secret Passphrase")
.update("Message")
.digest("base64");

关于php - 使用 Javascript 来确认用 PHP 生成的哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929501/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com