orchid_zxg 发表于 2022-7-25 10:16

1、版本:ZTE_STB_Tools_V2.1.1_T02

2、机器码:sq12780001290000002348000041F9DD62000000002383AF36D97EF0A37A8D773BEE529BD6760A1FE21679CF22F7DF40E258C5ABDA16C630E840E45CB6153F46D768AC720E257F977C7D2B517EE7E738A536E1C024153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E3A364F4619463EBF

3、去掉:sq,未知的12,密文长度78,未知的0001
290000002348000041F9DD62000000002383AF36D97EF0A37A8D773BEE529BD6760A1FE21679CF22F7DF40E258C5ABDA16C630E840E45CB6153F46D768AC720E257F977C7D2B517EE7E738A536E1C024153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E3A364F4619463EBF

4、3DES key 16bytes:290000002348000041F9DD6200000000
key为16bytes加0扩充至24bytes
290000002348000041F9DD62000000000000000000000000

5、剩下的是密文:
2383AF36D97EF0A37A8D773BEE529BD6760A1FE21679CF22F7DF40E258C5ABDA16C630E840E45CB6153F46D768AC720E257F977C7D2B517EE7E738A536E1C024153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E3A364F4619463EBF

6、密文加密方式为3DES,ECB模式,PKCS7填充,3DES在线加密解密:
http://tool.chacuo.net/crypt3des/
解密失败!

7、这些重复的字节是干嘛的?
153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E153F46D768AC720E

li325 发表于 2022-7-25 15:14

jianjie20130628 发表于 2022-7-25 20:27

orchid_zxg 发表于 2022-7-25 10:16
1、版本:ZTE_STB_Tools_V2.1.1_T02

2、机器码:sq12780001290000002348000041F9DD62000000002383AF36D97E ...

你算法做错了

jianjie20130628 发表于 2022-7-25 20:28

需要配合算法解密才能得到明文,你算法呢,光拆分可不行

orchid_zxg 发表于 2022-7-25 20:47

本帖最后由 orchid_zxg 于 2022-7-26 08:15 编辑

谢谢了,还是不太懂。3DES在线加密解密,不能解密,不知道错在哪里,请赐教。

orchid_zxg 发表于 2022-7-26 09:24

/// <summary>
    /// 完整
    /// </summary>
    public class TripleDESHelper1
    {
      public static string Encrypt(string aStrString, string aStrKey, CipherMode mode = CipherMode.ECB, string iv = "12345678")
      {
            try
            {

                var des = new TripleDESCryptoServiceProvider
               {
                  Key = Encoding.UTF8.GetBytes(aStrKey.Substring(0, 24)),//长度必须24个字节
                  Mode = mode
               };
                if (mode == CipherMode.ECB)
               {
                  des.IV = Encoding.UTF8.GetBytes(iv);
                }
                var desEncrypt = des.CreateEncryptor();
                byte[] buffer = Encoding.UTF8.GetBytes(aStrString);
                return Convert.ToBase64String(desEncrypt.TransformFinalBlock(buffer, 0, buffer.Length));
             }
            catch (Exception e)
            {
               return string.Empty;
            }
      }

      public static string Decrypt(string aStrString, string aStrKey, CipherMode mode = CipherMode.ECB, string iv = "12345678")
      {
            try
            {
                var des = new TripleDESCryptoServiceProvider
                {
                     Key = Encoding.UTF8.GetBytes(aStrKey.Substring(0, 24)),//长度必须24个字节
                     Mode = mode,
                  Padding = PaddingMode.PKCS7
                };
                if (mode == CipherMode.CBC)
                {
                  des.IV = Encoding.UTF8.GetBytes(iv);
                }
                var desDecrypt = des.CreateDecryptor();
                var result = "";
                byte[] buffer = Convert.FromBase64String(aStrString);
                result = Encoding.UTF8.GetString(desDecrypt.TransformFinalBlock(buffer, 0, buffer.Length));
               return result;
            }
            catch (Exception e)
            {
                return string.Empty;
            }
      }
    }

    public class TripleDESHelper
    {
      static byte[] IV = Encoding.UTF8.GetBytes("12345678");
      public static string Encrypt(string content, string key)
      {
            try
            {

                var tDes = new TripleDESCryptoServiceProvider
                {
                     Key = Encoding.UTF8.GetBytes(key.Substring(0, 24)),//长度必须24个字节
                     Mode = CipherMode.ECB,
                  IV = IV
                };
                var desEncrypt = tDes.CreateEncryptor();
                byte[] buffer = Encoding.UTF8.GetBytes(content);
                return Convert.ToBase64String(desEncrypt.TransformFinalBlock(buffer, 0, buffer.Length));
             }
            catch (Exception e)
            {
               return string.Empty;
            }
      }

      public static string Decrypt(string content, string key)
      {
             try
            {
                var tDes = new TripleDESCryptoServiceProvider
                {
                  Key = Encoding.UTF8.GetBytes(key.Substring(0, 24)),//长度必须24个字节
                     Mode = CipherMode.ECB,
                  Padding = PaddingMode.PKCS7
                };

                var desDecrypt = tDes.CreateDecryptor();
                byte[] buffer = Convert.FromBase64String(content);
                var result = Encoding.UTF8.GetString(desDecrypt.TransformFinalBlock(buffer, 0, buffer.Length));
                return result;
            }
             catch (Exception e)
            {
                return string.Empty;
            }
      }
    }

orchid_zxg 发表于 2022-7-26 09:24

本帖最后由 orchid_zxg 于 2022-7-26 11:14 编辑

没学过编程,这玩意怎么用?在哪里填KEY?哪里填密文?

jianjie20130628 发表于 2022-7-26 12:58

从开始你都出错了,随机骂为明文,注册码为密文,你随机码切割都错了,通过密钥算出滴密文不也是错滴嘛{znds10}

jianjie20130628 发表于 2022-7-26 12:59

第一步都算错了哦

jianjie20130628 发表于 2022-7-26 13:01

UIjRXs1MopOmhEMTbVy35H43n5IPhx3ib7glYoQrgJamH8+61S8UinKVInTKsPrt+7nlCM/IsQ2JxFBAXQOJ3HXeQh5QnsBhhzn7iT8ZweL5hajO0fdXHvZmJo0aFxiP1c6kla6S5fEfXY5801MXirWQwq42nKlnmOkHnFBX1QZTlTKb2toEj9uCN/zSEA+kbjsldndPsp07moRiHoQoTcTwJGPtUMX/lSowtdtlCp1pWyKFaaRUEPgklLmmeHNkfsShg1S3PBhMYqQjAFWOGgbOWneu5DfTMCXw3nJ6M1ieCuI/eNjwfOKqQse+FVMNpG4IOIeRnV4TMUEgm27LJA==这是从3DES里面分离滴算法解密公式
页: 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27
查看完整版本: ZTE_STB_Tools_V2.1.1-T02及前期版本