基于ruby的钉钉isv加密解密解析


发表于 2017年11月29日 10时48分55秒



在处理钉钉isv的接入门槛那边卡了一晚上.果然还是太菜了.

仔细读了钉钉提供的php相关源码后总算解决了

明文msg的加密过程

msg_encrypt = Base64_Encode( AES_Encrypt[random(16B) + msg_len(4B) + msg + $key] )

AES加密的buf由16个字节的随机字符串、4个字节的msg长度、明文msg和$key组成。其中msg_len为msg的字节数,网络字节序;

  • $key对于ISV来说,填写对应的suitekey

  • $key对于普通企业开发,填写企业的Corpid



buf由16个字节的随机字符串: 直接SecureRandom.hex 8即可

4个字节的msg长度: 此处要使用ruby的pack方法用pack("N")把他打包成字节序.我就是在这部卡了导致一晚上钉钉那边不认我的消息

后面就没什么难度了.也是见识太少,知见障了.


进行评论:


博客搜索

博客类别