HMAC SHA1 ColdFusion
请帮忙!我一直在为这个拔头发。 :)
我有一个网站需要 HMAC SHA1 进行身份验证。它目前可以使用另一种语言,但现在我需要将其转移到 ColdFusion。对于我的一生,我无法让琴弦相匹配。任何帮助将不胜感激。
数据:https%3A%2F%2Fwww%2Etestwebsite%2Ecom%3Fid%3D5447
密钥:<代码>265D5C01D1B4C8FA28DC55C113B4D21005BB2B348859F674977B24E0F37C81B05FAE85FB75EA9CF53ABB9A174C59D98C7A61E2985026D2AA70AE4452A6E3F2 F9
正确答案:WJd%2BKxmFxGWdbw4xQJZXd3%2FHkFQ%3d
我的答案:knIVr6wIt6%2Fl7mBJPTTbwQoTIb8%3d
两者都是Base64编码,然后URL编码。
Please help! I have been pulling out my hair over this one. :)
I have a site that I need to HMAC SHA1 for authentication. It currently works with another language but now I need to move it to ColdFusion. For the life of me I cannot get the strings to match. Any assistance would be much appreciated.
Data: https%3A%2F%2Fwww%2Etestwebsite%2Ecom%3Fid%3D5447
Key: 265D5C01D1B4C8FA28DC55C113B4D21005BB2B348859F674977B24E0F37C81B05FAE85FB75EA9CF53ABB9A174C59D98C7A61E2985026D2AA70AE4452A6E3F2F9
Correct answer: WJd%2BKxmFxGWdbw4xQJZXd3%2FHkFQ%3d
My answer: knIVr6wIt6%2Fl7mBJPTTbwQoTIb8%3d
Both are Base64 encoded and then URL encoded.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我自己做一个 HMAC-SHA1 的事情。我能说的最多的是我找到了这个旧功能。到目前为止,对我正在做的事情非常有效。忘了在哪里找到它,所以我不能相信作者。
对于您的 Base 64 内容...在加密上运行此函数,然后只需对返回的内容执行 cfset newString = toBase64(oldString) 即可。
Doing an HMAC-SHA1 thing myself. Best I can say is that I found this old function. Has worked great for what I am doing thus far. Forgot where I found it though so I can't credit the author.
For your Base 64 stuff... run this function on your encryption, then just do a cfset newString = toBase64(oldString) on what is returned.
更短的加密方法(基于 Barney's方法)输出字符串:
此外,
A shorter encryption method (based on Barney's method) that outputs a string:
In addition
史蒂夫 - 感谢您的回复。我实际上已经在使用 hmacEncrypt 函数了。不过我确实弄清楚了我的问题。我传递的是十六进制键而不是字符串。它接受了密钥,因为从技术上讲它是一个字符串。为了将其恢复为字符串,除了上面的函数之外,我还使用了另一个函数。下面的代码将十六进制更改为字符串。我没有编写下面的函数,也不记得它从哪里获得作者的认可,但它效果很好。
Steve - Thanks for your response. I actually was using the hmacEncrypt function already. I did figure out my issue though. I was passing in a HEX key instead of a string. It accepted the key because technically it was a string. To get it back to a string I used another function along with the one above. The one below changes the HEX into a string. I didn't write the function below nor do I remember where it came from to get the author credit, but it worked great.