Youtube api 如何计算YouTube PubSubHubbub数据的签名

Youtube api 如何计算YouTube PubSubHubbub数据的签名,youtube-api,hmacsha1,websub,Youtube Api,Hmacsha1,Websub,我一直在YouTube上工作 我能够订阅它,并且确实收到了来自YouTube的推送通知。我已将HMAC机密用于此订阅。我需要确认我收到的数据是从YouTube服务器发送的。我找不到任何文档来了解PubSubHubbub是如何创建签名的 我尝试了以下步骤: 是否规范化了请求主体(即XML内容) 以十六进制形式创建了SHA1摘要 但是这个签名与PubSubBub发送的签名不匹配 有人能解释一下计算签名的步骤吗 提前感谢。根据(v0.4,最新版本)的官方文档,您必须严格遵循其中描述的算法: 如果订户

我一直在YouTube上工作

我能够订阅它,并且确实收到了来自YouTube的推送通知。我已将HMAC机密用于此订阅。我需要确认我收到的数据是从YouTube服务器发送的。我找不到任何文档来了解PubSubHubbub是如何创建签名的

我尝试了以下步骤:

  • 是否规范化了请求主体(即XML内容)
  • 以十六进制形式创建了SHA1摘要
  • 但是这个签名与PubSubBub发送的签名不匹配

    有人能解释一下计算签名的步骤吗


    提前感谢。

    根据(v0.4,最新版本)的官方文档,您必须严格遵循其中描述的算法:

    如果订户在其订阅请求中为
    hub.secret
    提供了一个值,则hub必须生成有效负载的HMAC签名,并将该签名包含在内容分发请求的请求头中。
    X-Hub-Signature
    标题的值必须采用
    sha1=Signature
    格式,其中
    Signature
    是[RFC3174]的40字节十六进制表示形式。签名必须使用[RFC2104]计算,请求主体作为数据,
    hub.secret
    作为密钥

    当订阅者收到指定了
    X-Hub-Signature
    头的内容分发请求时,他们应该使用与Hub相同的方法重新计算具有共享机密的SHA1签名。如果签名不匹配,订阅者仍必须返回2xx成功响应以确认接收,但本地忽略消息,将其视为无效。将此技术与[RFC2818]一起用于订阅请求使简单订阅者能够从集线器接收经过身份验证的通知,而无需订阅者运行[RFC2818]服务器

    但是,请注意,此签名仅确保有效载荷不是伪造的。由于通知还包括头,订阅者不应认为这些头是安全的,除非订阅者使用[RFC2818]回调


    如果您提到您使用的编程环境,我可能会进一步帮助您。

    根据(v0.4,最新版本)的官方文档,您必须严格遵循其中描述的算法:

    如果订户在其订阅请求中为
    hub.secret
    提供了一个值,则hub必须生成有效负载的HMAC签名,并将该签名包含在内容分发请求的请求头中。
    X-Hub-Signature
    标题的值必须采用
    sha1=Signature
    格式,其中
    Signature
    是[RFC3174]的40字节十六进制表示形式。签名必须使用[RFC2104]计算,请求主体作为数据,
    hub.secret
    作为密钥

    当订阅者收到指定了
    X-Hub-Signature
    头的内容分发请求时,他们应该使用与Hub相同的方法重新计算具有共享机密的SHA1签名。如果签名不匹配,订阅者仍必须返回2xx成功响应以确认接收,但本地忽略消息,将其视为无效。将此技术与[RFC2818]一起用于订阅请求使简单订阅者能够从集线器接收经过身份验证的通知,而无需订阅者运行[RFC2818]服务器

    但是,请注意,此签名仅确保有效载荷不是伪造的。由于通知还包括头,订阅者不应认为这些头是安全的,除非订阅者使用[RFC2818]回调


    如果您提到您使用的编程环境,我可能会进一步帮助您。

    谢谢您的回复<代码>与中心相同的方法我想知道中心是如何计算签名的。我现在正在使用java。根据RFC2104的HMAC算法计算签名。感谢回复<代码>与中心相同的方法我想知道中心是如何计算签名的。我现在正在使用java。根据RFC2104的HMAC算法计算签名。