gpt4 book ai didi

php - 如何让 PHP 像 Objective-C 一样创建 HMAC-SHA1 字符串?

转载 作者:可可西里 更新时间:2023-11-01 12:43:01 24 4
gpt4 key购买 nike

我正在尝试使用 PHP 和 Objective-C 实现身份验证解决方案。两种语言都使用相同的 key 和相同的 secret 创建自己的 HMAC-SHA1 编码字符串。

显然,他们的工作方式似乎有所不同。

在 Objective-C 方面,我使用 OAuthCustomer 作为生成正确外观编码字符串的签名类:

/3n/d4sKN6k3I7nBm1qau59UukU=

在 PHP 方面,我使用内置函数 hash_hmac('sha1',...) 和 base64 编码,它产生这个:

ZmY3OWZmNzc4YjBhMzdhOTM3MjNiOWMxOWI1YTlhYmI5ZjU0YmE0NQ==

然后我尝试使用另一个函数(提到了 here ),这产生了 base64 编码:

NWY1ODUwOWE3NGI4NWU5ZTIxMDYzMTNmNzk3NTYxMDQ4OWE1MmUzNQ==

我完全不知道如何解决这个问题,我什至不知道为什么会这样。

非常感谢您的帮助,

保罗

最佳答案

好的,我会添加一个虚假的答案。 (在 Stackoverflow 上,每个问题都应该用答案来修饰。)

PHP 中的散列函数主要返回十六进制字符串,而不是真实数据。 (无论出于何种原因)。通常有一个函数参数使其与其他实现所期望的兼容:

 hash_hmac("sha1", $data, $key, $raw_output=TRUE);

md5($str, $raw_output=TRUE);

hash("sha1", $data, $raw_output=TRUE);

关于php - 如何让 PHP 像 Objective-C 一样创建 HMAC-SHA1 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522581/

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