weixin_43778463 2022-07-03 18:27 采纳率: 70.4%
浏览 29
已结题

C#反编译找到解密方法,可是怎么传参运行这个方法解密呢?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

public void DesDecrypt()
{
byte[] rgbIV = new byte[]
{
18,
52,
86,
120,
144,
171,
205,
239
};
try
{
byte[] bytes = Encoding.UTF8.GetBytes(this._decryptKey.Substring(0, 8));
DESCryptoServiceProvider descryptoServiceProvider = new DESCryptoServiceProvider();
byte[] array = Convert.FromBase64String(this._inputString);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, descryptoServiceProvider.CreateDecryptor(bytes, rgbIV), CryptoStreamMode.Write);
cryptoStream.Write(array, 0, array.Length);
cryptoStream.FlushFinalBlock();
Encoding encoding = new UTF8Encoding();
this._outString = encoding.GetString(memoryStream.ToArray());
}
catch (Exception ex)
{
this._noteMessage = ex.Message;
}
}

密文64Cic1ERUP9n2OzxuKl9Tw== 盐LIywB/zHFDTuEA1LU53Opg==

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-07-03 21:42
    关注

    这个是类的方法,需要自己建立属性_inputString【密文】_outString【明文】,_noteMessage【出错时的错误信息】,_decryptKey【密钥】,解密得到明文admin5566,示例如下

    img

    using System;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;
    namespace Demo
    {
        public class Des
        {
            /// <summary>
            /// 密文
            /// </summary>
            public string _inputString { get; set; }
    
            /// <summary>
            /// 明文
            /// </summary>
            public string _outString { get; set; }
            /// <summary>
            /// 出错时的错误信息
            /// </summary>
            public string _noteMessage { get; set; }
            /// <summary>
            /// 密钥
            /// </summary>
            public string _decryptKey { get; set; }
            public void DesDecrypt()
            {
                byte[] rgbIV = new byte[]
                {
                    18,
                    52,
                    86,
                    120,
                    144,
                    171,
                    205,
                    239
                };
                try
                {
                    byte[] bytes = Encoding.UTF8.GetBytes(this._decryptKey.Substring(0, 8));
                    DESCryptoServiceProvider descryptoServiceProvider = new DESCryptoServiceProvider();
                    byte[] array = Convert.FromBase64String(this._inputString);
                    MemoryStream memoryStream = new MemoryStream();
                    CryptoStream cryptoStream = new CryptoStream(memoryStream, descryptoServiceProvider.CreateDecryptor(bytes, rgbIV), CryptoStreamMode.Write);
                    cryptoStream.Write(array, 0, array.Length);
                    cryptoStream.FlushFinalBlock();
                    Encoding encoding = new UTF8Encoding();
                    this._outString = encoding.GetString(memoryStream.ToArray());
                }
                catch (Exception ex)
                {
                    this._noteMessage = ex.Message;
                }
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                var d = new Des { _inputString= "64Cic1ERUP9n2OzxuKl9Tw==", _decryptKey= "LIywB/zHFDTuEA1LU53Opg==" };
                d.DesDecrypt();
                Console.WriteLine(d._outString);
    
                Console.ReadKey();
            }
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月12日
  • 已采纳回答 7月4日
  • 创建了问题 7月3日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改