Foxtable(狐表)用户栏目专家坐堂 → 求助:钉钉加解密


  共有2568人关注过本帖树形打印复制链接

主题:求助:钉钉加解密

美女呀,离线,留言给我吧!
水墨青花
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:197 积分:1678 威望:0 精华:0 注册:2019/3/1 11:38:00
求助:钉钉加解密  发帖心情 Post By:2020/12/6 16:21:00 [只看该作者]

请问,钉钉加密解密可以使用微信加解密类型  WXBizCrypt(AppId, Token, EncodingAESKey) 吗?

用了钉钉的 Dim encryptor As DingTalkEncryptor = New DingTalkEncryptor(TOKEN,AES_KEY,CORP_ID),
返回错误:未定义类型 DingTalkEncryptor。

请问,该如何解决钉钉加解密的问题?

十分感谢!


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/6 20:48:00 [只看该作者]

这个是java的类型。到下载的。net的源码里找,好像是DingTalkCrypt

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:197 积分:1678 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By:2020/12/7 10:48:00 [只看该作者]

这个api是C#环境的DingTalkEncryptor.cs:

https://github.com/open-dingtalk/dingtalk-callback-Crypto/blob/main/DingTalkEncryptor.cs

是不是我不能直接使用,需要将该文件转换成 .dll文件,导入到Foxtable后才能正常使用?

谢谢1


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/7 11:18:00 [只看该作者]

到vs里建一个库项目,把代码复制到自己的项目里,编译成dll给foxtable引用

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:197 积分:1678 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By:2020/12/7 16:43:00 [只看该作者]

老师,搞不定呀!

我在vs prompt下用这个命令:csc /out:d:\test\DingTalkCrypt.dll /t:library d:\test\DingTalkCrypt.cs

返回错误如下:

Microsoft (R) Visual C# Compiler version 4.8.4084.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240

DingTalkCrypt.cs(4,13): error CS0234: 命名空间“Suite”中不存在类型或命名空间名称“Corp”(是否缺少程序集引用?)


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/7 16:59:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:197 积分:1678 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By:2020/12/8 13:28:00 [只看该作者]

老师,您好:

我把如下文件按照您上面给出的方法建了一个类库,生成 DTCrypt.dll 的文件,引入了Foxtable,但是在定义时:
Dim dingCrypt As New DTCrypt.DingTalkCrypt(Token,AesKey,CorpId)
给出编译错误:“DTCrypt.DingTalkCrypt”是 Friend,因此它在上下文中不可访问。

请问该怎么解决呢?谢谢!


DingTalkCrypto.cs 的code如下:

using System;
using System.Text;
using System.Security.Cryptography;
using System.Collections;
using System.IO;
using System.Net;

namespace DTCrypt
{
    class DingTalkCrypt
    {
......
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="token">钉钉开放平台上,开发者设置的token</param>
        /// <param name="encodingAesKey">钉钉开放台上,开发者设置的EncodingAESKey</param>
        /// <param name="suiteKey">钉钉开放平台上,开发者设置的suiteKey</param>
        public DingTalkCrypt(string token, string encodingAesKey, string suiteKey)
        {
            m_sToken = token;
            m_sSuiteKey = suiteKey;
            m_sEncodingAESKey = encodingAesKey;
        }

        public int EncryptMsg(string sReplyMsg, string sTimeStamp, string sNonce, ref string sEncryptMsg, ref string signature)
        {
.....

            string msgSigature = "";
            int ret = GenerateSignature(m_sToken, sTimeStamp, sNonce, raw, ref msgSigature);
            sEncryptMsg = raw;
            signature = msgSigature;
            return ret;
        }

        public int DecryptMsg(string sMsgSignature, string sTimeStamp, string sNonce, string sPostData, ref string sMsg)
        {
    .......
            return ret;
        }

        /// <summary>
        public int VerifyURL(string sMsgSignature, string sTimeStamp, string sNonce, string sEchoStr, ref string sReplyEchoStr)
        {
    .....
            return ret;
        }


    class Cryptography
    {
        public static UInt32 HostToNetworkOrder(UInt32 inval)
        {

        }

        public static Int32 HostToNetworkOrder(Int32 inval)
        {

        }

        public static string AES_decrypt(String Input, string EncodingAESKey, ref string corpid)
        {

        }

}


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/8 13:38:00 [只看该作者]

class DingTalkCrypt
改为
public class DingTalkCrypt

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:197 积分:1678 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By:2020/12/8 14:23:00 [只看该作者]

成功了!非常感谢!:-)





 回到顶部