有人碰到过钉钉事件回调的加解密吗?我调用的时候一直提示,aes_key 长度不合法
在钉钉的事件回调中,aes_key是用于数据加密的关键,其长度固定为43个字符。这个字符可以从a-z, A-Z, 0-9共62个字符中选取,并需要进行Base64编码以形成AESKey。当您在使用的过程中遇到“aes_key 长度不合法”的提示,很可能是由于您提供的aes_key的长度并不符合钉钉的要求(43个字符)所致。为了解决这个问题,您可以重新设置并生成一个符合长度要求的aes_key
在处理钉钉事件回调的加解密过程中,确实可能会遇到"aes_key 长度不合法"的问题。这通常是由于aesKey的长度不符合钉钉加密解密的要求。
钉钉的加解密方案中,明文msg的加密过程包括一个16个字节的随机字符串、4个字节的msg长度、明文msg和$key。其中,$key需要根据不同情况进行填写:第三方企业应用时填写对应的suiteKey;企业定制应用时填写对应的customKey;而企业内部应用则填写企业的Corpid。
实例化加解密类时,入参是token, aesKey, ownerKey(企业回调是corpId, 三方应用回调是suiteKey)。然后可以使用该类的getDecryptMsg方法来解密钉钉推送的数据。
如果您在获取钉钉事件回调时遇到了问题,可以检查以下几点:
回调事件消息体加解密https://open.dingtalk.com/document/orgapp/callback-event-message-body-encryption-and-decryption
本文介绍了回调事件消息体的加密和解密。
术语说明
EncodingAESKey
注册应用提供的数据加密密钥。用于消息体的加密,长度固定为43个字符,从a-z, A-Z, 0-9共62个字符中选取,是AESKey的Base64编码。解码后即为32字节长的AESKey。
AESKey
AESKey=Base64_Decode(EncodingAESKey + “=”),是AES算法的密钥,长度为32字节。AES采用CBC模式,数据采用PKCS#7填充;IV初始向量大小为16字节,取AESKey前16字节。具体详见:http://tools.ietf.org/html/rfc2315。
msg为消息体明文,格式为JSON
钉钉服务器会把msg消息体明文编码成encrypt,encrypt = Base64_Encode(AES_Encrypt[random(16B) + msg_len(4B) + msg + $key]),是对明文消息msg加密处理后的Base64编码。其中random为16字节的随机字符串;msg_len为4字节的msg长度,网络字节序;msg为消息体明文;
可能就是你配置的不对吧,看下链接:
https://blog.csdn.net/m0_38002193/article/details/119108248?spm=1001.2014.3001.5501
——此回答整理自钉群:钉钉开发者社区(互助群)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。