大佬教程收集整理的这篇文章主要介绍了php-从ColdFusion中的Microsoft Teams自定义Bot验证HMAC,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用COldFusion,following the Microsoft instructions in C#对Microsoft Teams自定义Bot进行身份验证.我也在this PHP example之后进行了尝试.但是我没有任何运气.知道我在这里缺少什么吗?
<cfset secretKey = "MsVx7SpJKnSiycvsUyLMiD8lDIFkEUDhuYuFAT94hXY=">
<cfset httprequestData = GethttprequestData()>
<cfset c = httprequestData.content>
<cfset calculated_hmac = toBase64(hmac(c, secretKey, "HMACSHA256"))>
我得到这个…
calculated_hmac: Nje2RUY1RjREQTNEMzk1Q0RBNUJDMEE2NDhFNzk3RDIyNUMzRDJDMjk5NTYzMDgxODk0NkU3Njc3RTVEQTAyQQ==
来自Microsoft的headers.authorization是这个…
HMAC 6N0WyOW7g+LqShKYsouWOrPjgh0PD1gazfwNeNwpuS8=
对于此特定示例,GethttprequestData().content是…
解决方法:
(请注意,我无法复制该“ calculated_hmac”,因为样本“ content”字符串必须与原始字符串有所不同-可能只是空白,但这足以完全改变结果…).
无论如何,基于the instructions,我猜主要问题是在哈希中使用字符串而不是二进制:
首先尝试将主体解码为二进制
<cfset bodyBinary = charsetDecode(GethttprequestData().content, "utf-8")>
使用密钥执行相同的操作
<cfset secretKey = "MsVx7SpJKnSiycvsUyLMiD8lDIFkEUDhuYuFAT94hXY=">
<cfset secretBinary = binaryDecode(secretKey, "base64")>
最后,不要忘记HMAC()返回十六进制字符串.如果需要base64,则必须DIY:
<cfset hexHash = hmac(bodyBinary, secretBinary, "HMACSHA256")>
<cfset calculated_hmac = binaryEncode(binaryDecode(hexHash, "hex"), "base64")>
以上是大佬教程为你收集整理的php-从ColdFusion中的Microsoft Teams自定义Bot验证HMAC全部内容,希望文章能够帮你解决php-从ColdFusion中的Microsoft Teams自定义Bot验证HMAC所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。