我们正在尝试在 ColdFusion 中计算 HMAC-SHA256 摘要,并且我们使用的是 HMAC CFC,但在一种情况下,与使用不同语言生成的摘要相比,它会为摘要生成不同的结果 - 已尝试使用相同的数据Ruby & PHP 并得到预期的结果。我还尝试了它所基于的 CF_HMAC 自定义标签并获得了相同的结果。
我了解到从 CF8 开始,encrypt()
支持 HMAC-SHA256,但它仅在企业版中可用(我们没有),甚至在开发人员版本中都不可用供我测试.
所以我的问题是我可以通过从 CF 访问 Java 来做到这一点吗?
最佳答案
这就是我最终做的:
secret = createObject('java', 'javax.crypto.spec.SecretKeySpec' ).Init(my_key.GetBytes(), 'HmacSHA256');
mac = createObject('java', "javax.crypto.Mac");
mac = mac.getInstance("HmacSHA256");
mac.init(secret);
digest = mac.doFinal(my_data.GetBytes());
这会为您提供字节数组,然后您可以将其转换为字符串。
关于java - 使用 Java 在 ColdFusion 中计算 HMAC-SHA256 摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/951477/