Common/DingTalkCrypt.cs

(开头部分) 10KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Text;
using System.Security.Cryptography;
using Suite.Corp;
using System.Collections;

namespace Suite.API
{
    class DingTalkCrypt
    {
        private readonly string m_sEncodingAESKey;
        private readonly string m_sToken;
        private readonly string m_sSuiteKey;
        /**ask getPaddingBytes key固定长度**/
        private static readonly int AES_ENCODE_KEY_LENGTH = 43;
        /**加密随机字符串字节长度**/
        //private static readonly int RANDOM_LENGTH = 16;

        enum DingTalkCryptErrorCode
        {
            /**成功**/
            SUCCESS = 0,
            /**加密明文文本非法**/
            ENCRYPTION_PLAINTEXT_ILLEGAL = 900001,
            /**加密时间戳参数非法**/
            ENCRYPTION_TIMESTAMP_ILLEGAL = 900002,
            /**加密随机字符串参数非法**/
            ENCRYPTION_NONCE_ILLEGAL = 900003,
            /**不合法的aeskey**/
            AES_KEY_ILLEGAL = 900004,
            /**签名不匹配**/
            SIGNATURE_NOT_MATCH = 900005,
            /**计算签名错误**/
            COMPUTE_SIGNATURE_ERROR = 900006,
            /**计算加密文字错误**/
            COMPUTE_ENCRYPT_TEXT_ERROR = 900007,
            /**计算解密文字错误**/
            COMPUTE_DECRYPT_TEXT_ERROR = 900008,
            /**计算解密文字长度不匹配**/
            COMPUTE_DECRYPT_TEXT_LENGTH_ERROR = 900009,
            /**计算解密文字suiteKey不匹配**/
            COMPUTE_DECRYPT_TEXT_SuiteKey_ERROR = 900010,
        };

        /// <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;
        }
        
        /// <summary>
        /// 将消息加密,返回加密后字符串
        /// </summary>
后面还有 202 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读 AI

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。