gpt4 book ai didi

coldfusion - HMAC SHA1 冷聚变

转载 作者:行者123 更新时间:2023-12-04 16:49:45 25 4
gpt4 key购买 nike

请帮忙!我一直在为这个拔头发。 :)

我有一个需要 HMAC SHA1 进行身份验证的站点。它目前适用于另一种语言,但现在我需要将其移至 ColdFusion。对于我的生活,我无法让琴弦匹配。任何帮助将不胜感激。

数据:https%3A%2F%2Fwww%2Etestwebsite%2Ecom%3Fid%3D5447 key :265D5C01D1B4C8FA28DC55C113B4D21005BB2B348859F674977B24E0F37C81B05FAE85FB75EA9CF53ABB9A174C59D98C7A61E2985026D2AA70AE4452A6E3F2F9
正确答案:WJd%2BKxmFxGWdbw4xQJZXd3%2FHkFQ%3d我的回答:knIVr6wIt6%2Fl7mBJPTTbwQoTIb8%3d
两者都是 Base64 编码的,然后是 URL 编码的。

最佳答案

自己做一个 HMAC-SHA1 的事情。我能说的最好的是我发现了这个旧功能。到目前为止,我所做的工作非常有效。忘了我在哪里找到的,所以我不能相信作者。

对于您的 Base 64 内容...在您的加密中运行此函数,然后对返回的内容执行 cfset newString = toBase64(oldString) 。

<cffunction name="hmacEncrypt" returntype="binary" access="public" output="false">
<cfargument name="signKey" type="string" required="true" />
<cfargument name="signMessage" type="string" required="true" />
<cfargument name="algorithm" type="string" default="HmacSHA1" />
<cfargument name="charset" type="string" default="UTF-8" />

<cfset var msgBytes = charsetDecode(arguments.signMessage, arguments.charset) />
<cfset var keyBytes = charsetDecode(arguments.signKey, arguments.charset) />
<cfset var keySpec = createObject("java","javax.crypto.spec.SecretKeySpec") />
<cfset var mac = createObject("java","javax.crypto.Mac") />

<cfset key = keySpec.init(keyBytes, arguments.algorithm) />
<cfset mac = mac.getInstance(arguments.algorithm) />
<cfset mac.init(key) />
<cfset mac.update(msgBytes) />

<cfreturn mac.doFinal() />
</cffunction>

关于coldfusion - HMAC SHA1 冷聚变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2959972/

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