gpt4 book ai didi

php - 如何使用 Base64 编码执行 HMAC-SHA1?

转载 作者:行者123 更新时间:2023-12-01 10:30:47 25 4
gpt4 key购买 nike

我正在尝试设置一个应用程序来使用我的 URL 进行签名,以便它们可以进行身份​​验证,但我似乎无法弄清楚如何从以下页面复制我正在尝试的代码:https://help.sendowl.com/help/signed-urls#example

order_id=12345&buyer_name=Test+Man&buyer_email=test%40test.com&product_id=123&signature=QpIEZjEmEMZV%2FHYtinoOj5bqAFw%3D

buyer_email=test@test.com&buyer_name=Test Man&order_id=12345&product_id=123

buyer_email=test@test.com&buyer_name=Test Man&order_id=12345&product_id=123&secret=t0ps3cr3t

publicStr&t0ps3cr3t

这是步骤:
  • 先对参数进行排序(去掉签名)和unescape
    他们:
  • 接下来附加您的签名 key :
  • 生成用于签名的 key :
  • 使用 Base 64 编码执行 HMAC-SHA1 摘要: QpIEZjEmEMZV/HYtinoOj5bqAFw=

  • 以下是我尝试过但最终没有得到相同结果的方法:
    $signKey = "t0ps3cr3t";
    $signData = "buyer_email=test@test.com&buyer_name=Test Man&order_id=12345&product_id=123&secret=t0ps3cr3t";

    $passData = hash_hmac("sha1", $signData, base64_decode(strtr($signKey)), true);
    $passData = base64_encode($passData);

    echo $passData;

    我不断收到 x8NXmAmkNBPYCXwtj65mdVJ8lPc=

    最佳答案

    我能够使用以下内容进行复制:花了我一点时间才弄清楚这么简单的事情......连续编码 11 个小时。

    谢谢。

    $data = "buyer_email=test@test.com&buyer_name=Test Man&order_id=12345&product_id=123&secret=t0ps3cr3t";
    $key = "publicStr&t0ps3cr3t";

    $pass1 = hash_hmac('sha1', $data, $key, true);
    $pass = base64_encode($pass1);

    echo $pass;

    $pass will return "QpIEZjEmEMZV/HYtinoOj5bqAFw=", the correct value.

    关于php - 如何使用 Base64 编码执行 HMAC-SHA1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42918704/

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